2011-06-21 10 views
4

現在のユーザーの所属するSharePointグループ名を取得しようとしています。私はその情報を提供するメソッド/プロパティを見つけることができませんでした。私は現在のユーザーのユーザー名を取得することしかできませんでした。私には見られないこの情報を提供する財産はありますか?SP 2010 javascriptクライアントサイドオブジェクトモデルを使用して現在のユーザーグループを取得

+0

私は2日以来同じ問題を抱えており、現在のユーザーの役割を得ることができません。あなたは解決策を手に入れましたか? pls分け前。 –

答えて

4

javascriptを使用して現在のユーザーのグループを返す直接的な方法はありません。

ここには、この情報を返すための回避策を説明するMSDNディスカッショングループのpostがあります。 権限を確認するためのグループ名を知りたい場合、回避策はhereです。そこで、基本的

context = new SP.ClientContext.get_current(); 
web = context.get_web(); 
var value = web.get_effectiveBasePermissions(); 

あなたはグループ名が必要な場合には、残念ながらそれを行うには直接的な方法はありません。しかし、現在のユーザーを取得して、1つのグループのユーザー収集を取得できます。次に、1つのグループからユーザーコレクションをチェックして、現在のユーザーが含まれているかどうかを確認できます。

  1. 現在のユーザーなさい:example

  2. 現在のWebのためのGetグループの収集:指定したグループ

    var groupCollection = clientContext.get_web().get_siteGroups(); 
    // Get the visitors group, assuming its ID is 4. 
    visitorsGroup = groupCollection.getById(4); 
    
  3. はグループ

    のためのユーザーをexample

  4. をゲット

    var userCollection = visitorsGroup.get_users(); 
    
  5. ユーザーコレクションに、指定されたユーザーが含まれているかどうかを確認します。

簡単なデモの場合は、次のとおりです。document

2

としては、あなたがあなたのユーザーは、現在のグループ内にあるかどうかを確認するためにグループをループここからすべてのグループvar allGroups = currentWeb.get_siteGroups();

をすることができます取得、その後、現在のユーザーvar currentUser = currentContext.get_web().get_currentUser()を得ることができますヴァディムGremyachev hereで示されます。したがって、あなたがグループ、グループ、メンバー、所有者、ビューアをチェックしたいグループのリストを持っている場合は、単に各グループにあるかどうかを検出するためにこのメソッドを使用してください。

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

// example use 
window.IsCurrentUserMemberOfGroup("Members", function (isCurrentUserInGroup){ 
    if(isCurrentUserInGroup){ 
     console.log('yep he is'); 
    } else { 
     console.log('nope he aint'); 
    } 
});