2017-03-02 96 views
0

我有在我需要检查,如果用户是一个成员或不属于任何特定的SharePoint组的要求。对于这个我使用下面的代码:clientcontext.executequeryasync给出拒绝访问的错误在SharePoint 2010

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); 
    currentContext.load(allGroups,'Include(users)'); 

    currentContext.executeQueryAsync(OnSuccess,OnFailure); 

    function OnSuccess(sender, args) { 
     // Success function callback 
     OnComplete(userInGroup); 
    } 

    function OnFailure(sender, args) { 
     OnComplete(false); 
    }  
} 

如果当前用户是网站集管理员,然后此代码工作正常,但如果用户不是网站集管理员,然后这是不工作,并给了我下面的错误:

发生

access denied. you do not have permission to perform this action or access this resource

这个错误在currentContext.executeQueryAsync(OnSuccess,OnFailure);

任何一个可以帮助我什么,我做错了,为什么我收到这个错误?有没有解决方法?

在此先感谢!

回答

0

此代码是不是为我工作,我不知道什么是错在这个代码或环境。所以,我刚刚更换这与下面的代码,我能满足我的要求:

代码

var IsCurrentUserMemberOfGroup = function (groupName, OnComplete) { 
    var userInGroup = false; 
    $().SPServices({ 
     operation: "GetGroupCollectionFromUser", 
     userLoginName: $().SPServices.SPGetCurrentUser(), 
     async: false, 
     completefunc: function (xData, Status) { 
      if ($(xData.responseXML).find("Group[Name='" + groupName + "']").length == 1) { 
       userInGroup = true; 
      } 
     } 
    }); 
    OnComplete(userInGroup); 
} 

所以基本上我在这里使用SPServices,取而代之的是SPServices的代码。

相关问题