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.

Kullanıcımızın rolleri aşağıdaki ekran alıntısındaki gibi olsun

Rol

Şimdi ise 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; }

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.

Kullanıcımızın rolleri aşağıdaki ekran alıntısındaki gibi olsun

Rol

Şimdi ise 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.