2017-03-02 47 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的代碼。

相關問題