I have Used These 3 Functions to Achieve This using Javascript :
function ShowHideSection() {
if (UserHasRole("Sales Person")) {
// Tab Name or Guid of it
if (Xrm.Page.ui.tabs.get("Account Research") != null) {
Xrm.Page.ui.tabs.get("Account Research").setVisible(true);
}
// tab_4_section_3
if (Xrm.Page.ui.tabs.get("LeadGen Information") != null) {
Xrm.Page.ui.tabs.get("LeadGen Information").setVisible(false);
}
}
else if (UserHasRole("Sales Manager")) {
// Tab Name or Guid of it
if (Xrm.Page.ui.tabs.get("Account Research") != null) {
Xrm.Page.ui.tabs.get("Account Research").setVisible(false);
}
// tab_4_section_3
if (Xrm.Page.ui.tabs.get("LeadGen Information") != null) {
Xrm.Page.ui.tabs.get("LeadGen Information").setVisible(true);
}
}
else {
//Xrm.Page.ui.tabs.get("tab_6_section_2").sections.get("5").setVisible(false);
if (Xrm.Page.ui.tabs.get("Account Research") != null) {
Xrm.Page.ui.tabs.get("Account Research").setVisible(false);
}
}
}
function UserHasRole(roleName) {
//var serverUrl = Xrm.Page.context.getServerUrl();
var serverUrl = Xrm.Page.context.getClientUrl();
var oDataEndpointUrl = serverUrl + "/XRMServices/2011/OrganizationData.svc/";
var org = Xrm.Page.context.getOrgUniqueName()
//var oDataEndpointUrl = "/" + org + "/XRMServices/2011/OrganizationData.svc/";
var oDataEndpointUrl = "/XRMServices/2011/OrganizationData.svc/";
oDataEndpointUrl += "RoleSet?$top=1&$filter=Name eq '" + roleName + "'";
var service = GetRequestObject();
if (service != null) {
service.open("GET", oDataEndpointUrl, false);
service.setRequestHeader("X-Requested-Width", "XMLHttpRequest");
service.setRequestHeader("Accept", "application/json, text/javascript, */*");
service.send(null);
var retrieved = JSON.parse(service.responseText).d;
var role = retrieved.results[0];
var id = role.RoleId;
var currentUserRoles = Xrm.Page.context.getUserRoles();
for (var i = 0; i < currentUserRoles.length; i++) {
var userRole = currentUserRoles[i];
if (GuidsAreEqual(userRole, id)) {
return true;
}
}
//var requestResults = eval('(' + service.responseText + ')').d;
//if (requestResults != null && requestResults.results.length == 1) {
// var role = requestResults.results[0];
// var id = role.RoleId;
// var currentUserRoles = Xrm.Page.context.getUserRoles();
// for (var i = 0; i < currentUserRoles.length; i++) {
// var userRole = currentUserRoles[i];
// if (GuidsAreEqual(userRole, id)) {
// return true;
// }
// }
//}
}
return false;
}
function GetRequestObject() {
if (window.XMLHttpRequest) {
return new window.XMLHttpRequest;
}
else {
try {
return new ActiveXObject("MSXML2.XMLHTTP.3.0");
}
catch (ex) {
return null;
}
}
}
function GuidsAreEqual(guid1, guid2) {
var isEqual = false;
if (guid1 == null || guid2 == null) {
isEqual = false;
}
else {
isEqual = guid1.replace(/[{}]/g, "").toLowerCase() == guid2.replace(/[{}]/g, "").toLowerCase();
}
return isEqual;
}