2011-09-13 8 views
0

私は、このコードでSharePointユーザーグループを作成したクライアントの一覧を持っています。SharePoint 2010のリストでユーザーグループ名を選択する方法を教えてください。

namespace CreateGroupCSharp.EventReceiver1 
{ 
    public class EventReceiver1 : SPItemEventReceiver 
    { 
     public override void ItemAdded(SPItemEventProperties properties) 
     { 
      using (SPSite site = new SPSite("http://abc/")) 
      {   
       SPWeb web = site.AllWebs[0]; 

       SPList customList = web.Lists["Client"]; 

       string strCount = properties.ListItem.Title.ToString(); 

       string status = properties.Status.ToString();    

       SPGroup groupOwner = web.SiteGroups.GetByID(int.Parse(web.Properties["vti_associateownergroup"])); 

       string groupName = strCount; 

       web.SiteGroups.Add(groupName, groupOwner, null, "Custom SharePoint Group for Demo"); 

       SPGroup wcmGroup = web.SiteGroups[groupName]; 

       SPRoleDefinition designerRoleDefinition = web.RoleDefinitions["Contribute"]; 

       SPRoleAssignment roleAssignment = new SPRoleAssignment(wcmGroup); 

       roleAssignment.RoleDefinitionBindings.Add(designerRoleDefinition); 

       web.RoleAssignments.Add(roleAssignment); 
       wcmGroup.Update();        
       web.Update();    
      } 

      base.ItemAdded(properties); 
     } 
    } 
} 

SharePointリスト自体に各クライアントのユーザーを作成することはできますか?
作成したグループを一覧のユーザーに割り当てる方法を教えてください。

答えて

0

あなたのリストにUsersという名前のPersonまたはGroup列を追加します。複数の選択を許可し、人のみ(グループなし)を選択できます。次に、イベント受信者に次のコードを使用してユーザーをグループに追加できます。

private void AddUsers(SPWeb web, SPGroup group, SPListItem item) 
{ 
    object value = item["Users"]; 
    if (null != value) 
    { 
     SPFieldUserValueCollection userValues = 
      new SPFieldUserValueCollection(web, value.ToString()); 
     foreach (SPFieldUserValue userValue in userValues) 
     { 
      SPUser user = userValue.User; 
      if (null == user) 
      { 
       user = web.EnsureUser(userValue.LookupValue); 
      } 
      group.AddUser(user.LoginName, user.Email, user.Name, null); 
     } 
    } 
} 
関連する問題