Hi Team,
I'm trying to hide my custom developed custom action button from ribbon.
I have added EnabledScript="javascript:Check();"/> in custom action button elements.xml file.
My JavaScript is failing and pop up a message "Request failed" if the user is not part of the site collection administrator. Here is my code.
var UserExistInGroup;
function Check() {
var _isUser;
if (UserExistInGroup == null) {
checkUser();
}
else {
_isUser = UserExistInGroup;
UserExistInGroup = null;
return _isUser;
}
}
function checkUser() {
var clientContext = new SP.ClientContext.get_current();
this.currentUser = clientContext.get_web().get_currentUser();
clientContext.load(currentUser);
this.collGroup = clientContext.get_web().get_siteGroups();
clientContext.load(collGroup);
clientContext.load(collGroup, 'Include(Users)'); -->> request failed if the user is not part of Site collection admin group.
clientContext.executeQueryAsync(Function.createDelegate(this, this.onComQuerySucceeded), Function.createDelegate(this, this.onQueryFailed));
//return UserExistInGroup;
}
function onComQuerySucceeded() {
UserExistInGroup = false;
var currentContext = new SP.ClientContext.get_current();
var groupEnumerator = collGroup.getEnumerator();
while (groupEnumerator.moveNext()) {
var oGroup = groupEnumerator.get_current();
if (oGroup.get_title() == 'Operations Administrators') {
var collUser = oGroup.get_users();
var userEnumerator = collUser.getEnumerator();
while (userEnumerator.moveNext()) {
var oUser = userEnumerator.get_current();
if (oUser.get_loginName() == currentUser.get_loginName()) {
UserExistInGroup = true;
break;
}
}
}
if (UserExistInGroup) {
break;
}
}
RefreshCommandUI();
}
function onQueryFailed() {
alert('Request failed. ');
}
Please let me know how to make this work for normal user who are part of the specific group only..P N Bharath