自定义Sharepoint托管加载项的ECB菜单

时间:2015-11-13 10:48:02

标签: javascript visual-studio-2015 office365 sharepoint-online sharepoint-apps

如何根据权限隐藏Sharepoint加载项中ECB菜单中的某些菜单项?我的Sharepoint应用程序是托管的Sharepoint,而不是托管的提供者,因此javascript注入方法不起作用。

由于

2 个答案:

答案 0 :(得分:1)

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

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');

来自here

的来源

答案 1 :(得分:0)

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