Quantcast
Channel: SharePoint 2013 - Development and Programming forum
Viewing all articles
Browse latest Browse all 7589

Hide custom action button using javascript

$
0
0

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



Viewing all articles
Browse latest Browse all 7589

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>