自定义Sharepoint托管外接程序的ECB菜单



如何根据权限在Sharepoint外接程序的ECB菜单中隐藏一些菜单项?我的Sharepoint应用程序是由Sharepoint托管的,而不是由提供者托管的,所以javascript注入方法不起作用。

感谢

检查用户是否为指定组成员的功能

function IsCurrentUserMemberOfGroup(groupName, OnComplete) {
        var currentContext = new SP.ClientContext.get_current();
        var currentWeb = currentContext.get_web();
        var currentUser = currentContext.get_web().get_currentUser();
        currentContext.load(currentUser);
        var allGroups = currentWeb.get_siteGroups();
        currentContext.load(allGroups);
        var group = allGroups.getByName(groupName);
        currentContext.load(group);
        var groupUsers = group.get_users();
        currentContext.load(groupUsers);
        currentContext.executeQueryAsync(OnSuccess,OnFailure);
        function OnSuccess(sender, args) {
            var userInGroup = false;
            var groupUserEnumerator = groupUsers.getEnumerator();
            while (groupUserEnumerator.moveNext()) {
                var groupUser = groupUserEnumerator.get_current();
                if (groupUser.get_id() == currentUser.get_id()) {
                    userInGroup = true;
                    break;
                }
            }  
            OnComplete(userInGroup);
        }
        function OnFailure(sender, args) {
            OnComplete(false);
        }    
}

使用

function IsCurrentUserHasContribPerms() 
{
  IsCurrentUserMemberOfGroup("Members", function (isCurrentUserInGroup) {
    if(isCurrentUserInGroup)
    {
        // The current user is in the [Members] group!
    }
  });
}
ExecuteOrDelayUntilScriptLoaded(IsCurrentUserHasContribPerms, 'SP.js');

来源于此处

感谢您的帮助。最后,我在我的页面中得到了我想要自定义的内容。我已经通过创建另一个文件来覆盖core.js中的CreateMenuOption(我使用Chrome来获取代码)。我也使用了以下js文件:https://spservices.codeplex.com/以便获得所连接的用户的组。

相关内容

  • 没有找到相关文章

最新更新