Kullanıcı Rollerine Göre Tab Gizleme

Microsoft Crm temel olarak formlardan oluşmaktadır. Formlar içerisine istediğimiz kadar field koyabiliyorsunuz. Ancak ekran boyutlarından dolayı sıkıntı yaşandığımızdan Tab bizim için işleri kolaylaştıran en büyük yardımcımız. Tabi bu Tabları nasıl kullandığımıza da bakmamız gerekiyor. Makalemizin devamında kullanıcının rolüne göre Tab Gizleme işlemini yapıyor olacağız.

Şimdi onLoad eventimize gerekli kodları yazalım

var authorization=false;

if(UserHasRole("Portal Yetkisi"))
{
authorization = true;
}

if( authorization == false )
{
// gizlemek istediğimiz tab numarası
HideSpecificTab("4");
}

// Tab numarası 0’dan başlar
function HideSpecificTab(tabno)
{
var tab = document.getElementById('tab'+ tabno +'Tab');
tab.style.display = "none";
}

function GetCurrentUserRoles()
{
var xml = "" +
"" +
"" +
GenerateAuthenticationHeader() +
" " +
" " +
" " +
" role" +
" " +
" " +
" name" +
" " +
" " +
" false" +
" " +
" " +
" roleid" +
" role" +
" systemuserroles" +
" roleid" +
" Inner" +
" " +
" " +
" systemuserid" +
" systemuserroles" +
" systemuser" +
" systemuserid" +
" Inner" +
" " +
" And" +
" " +
" " +
" systemuserid" +
" EqualUserId" +
" " +
" " +
" " +
" " +
" " +
" " +
" " +
" " +
" " +
" " +
"" +
"";

var xmlHttpRequest = new ActiveXObject("Msxml2.XMLHTTP");
xmlHttpRequest.Open("POST", "/mscrmservices/2007/CrmService.asmx", false);
xmlHttpRequest.setRequestHeader("SOAPAction"," http://schemas.microsoft.com/crm/2007/WebServices/RetrieveMultiple");
xmlHttpRequest.setRequestHeader("Content-Type", "text/xml; charset=utf-8");
xmlHttpRequest.setRequestHeader("Content-Length", xml.length);
xmlHttpRequest.send(xml);
var resultXml = xmlHttpRequest.responseXML;
return(resultXml);
}

function UserHasRole(roleName)
{
var oXml = GetCurrentUserRoles();
if (oXml != null) {
var roles = oXml.selectNodes("//BusinessEntity/q1:name");
if (roles != null) {
for (i = 0; i < roles.length; i++)
{
//Kullanıcı bu role sahipse true değeri dön
if (roles[i].text == roleName) {
return true;
}
}
}
}

return false;
}

 

Leave a reply:

Your email address will not be published.