Как выбрать имя группы пользователей в списке в SharePoint 2010? - PullRequest
0 голосов
/ 13 сентября 2011

У меня есть список клиентов, с помощью которых я создал группы пользователей SharePoint с этим кодом.

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?
Как я могу назначить эти созданные группы пользователям в списке?

1 Ответ

0 голосов
/ 13 сентября 2011

Я бы добавил столбец «Персона» или «Группа» с именем «Пользователи» в ваш список.Разрешить множественный выбор и разрешить выбор только людей (без групп).Затем вы можете добавить пользователей в группу, используя следующий код в получателе событий:

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);
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...