none
PowerShell поле "пользователи и группы" выбор пользователей только определенной группы сайта RRS feed

  • Вопрос

  • Реализую следующий код на PowerShell

    http://www.sharepoint2010.ru/post/fldtype-select-user.aspx

    Подскажите пожалуйста как ограничить выбор пользователей только по определенной группе этого сайта?

    # получаем список пользователей

    $users = $web.SiteUserInfoList 

    # добавляем в список поле подстановки, указывающее на пользователей

    $list.Fields.AddLookup("user", $users.ID, $true) 

    По идее нам надо получить пользователей этой группы

    # получаем список пользователей

    $users = ?

    1 марта 2012 г. 8:54

Ответы

  • Странный у Вас какой-то код..

    $web.SiteUserInfoList.GetType()


    IsPublic IsSerial Name                                     BaseType                                                                                                                                             
    -------- -------- ----                                     --------                                                                                                                                             
    True     False    SPList                                   Microsoft.SharePoint.SPSecurableObject                                                                                                               
    Тоесть нормально, что у Вашей коллекции $users тип SPList ? 

    А если необходимо получить пользователей для какой-то группы- я бы сделал это так :

    Add-PSSnapin Microsoft.SharePoint.PowerShell
    
    $web = Get-SPWeb -Identity "http://mywebsite"
    $groupName = "MyGroup"
    
    $mygroup = $web.Groups | where { $_.Name -Eq $groupName}
    $users =  $mygroup.Users


    Обратите внимание, что тип переменной $users приведенный в моем коде отличается от типа вашей переменной $users

     $users.GetType()


    IsPublic IsSerial Name                                     BaseType                                                                                                                                             
    -------- -------- ----                                     --------                                                                                                                                             
    True     False    SPUserCollection                         Microsoft.SharePoint.SPMemberCollection                    

     Уточните,пожалуйста, что Вы хотите получить, если приведенная мной информация является недостаточной.  Приведенный вами код добавляет lookup  поле user в список $list, которое указывает на список $users приведенный в вашем коде.  Для добавления такого поля вообще не нужно получать коллекцию пользователей. И ваш код вполне достаточен. вобщем, я затрудняюсь предположить что Вам нужно :)  Возможно вы хотите чтоб при подстановке были доступны только пользователи из определенной группы ?  Для этого нужно создать lookup вашем кодом, а фильтровать уже отдельным кодом в веб-части, например. Так как lookup - это как бы связка списков, он не фильтрует.


    • Изменено Никита Каюров 1 марта 2012 г. 12:10
    • Помечено в качестве ответа RitroF 1 марта 2012 г. 12:49
    1 марта 2012 г. 11:59

Все ответы

  • Странный у Вас какой-то код..

    $web.SiteUserInfoList.GetType()


    IsPublic IsSerial Name                                     BaseType                                                                                                                                             
    -------- -------- ----                                     --------                                                                                                                                             
    True     False    SPList                                   Microsoft.SharePoint.SPSecurableObject                                                                                                               
    Тоесть нормально, что у Вашей коллекции $users тип SPList ? 

    А если необходимо получить пользователей для какой-то группы- я бы сделал это так :

    Add-PSSnapin Microsoft.SharePoint.PowerShell
    
    $web = Get-SPWeb -Identity "http://mywebsite"
    $groupName = "MyGroup"
    
    $mygroup = $web.Groups | where { $_.Name -Eq $groupName}
    $users =  $mygroup.Users


    Обратите внимание, что тип переменной $users приведенный в моем коде отличается от типа вашей переменной $users

     $users.GetType()


    IsPublic IsSerial Name                                     BaseType                                                                                                                                             
    -------- -------- ----                                     --------                                                                                                                                             
    True     False    SPUserCollection                         Microsoft.SharePoint.SPMemberCollection                    

     Уточните,пожалуйста, что Вы хотите получить, если приведенная мной информация является недостаточной.  Приведенный вами код добавляет lookup  поле user в список $list, которое указывает на список $users приведенный в вашем коде.  Для добавления такого поля вообще не нужно получать коллекцию пользователей. И ваш код вполне достаточен. вобщем, я затрудняюсь предположить что Вам нужно :)  Возможно вы хотите чтоб при подстановке были доступны только пользователи из определенной группы ?  Для этого нужно создать lookup вашем кодом, а фильтровать уже отдельным кодом в веб-части, например. Так как lookup - это как бы связка списков, он не фильтрует.


    • Изменено Никита Каюров 1 марта 2012 г. 12:10
    • Помечено в качестве ответа RitroF 1 марта 2012 г. 12:49
    1 марта 2012 г. 11:59
  • Никита спасибо большое за помощь!

    Вы подтвердили мои предположения.

    Я хотел что бы при подстановке были доступны только пользователи из определенной группы.

    • Изменено RitroF 2 марта 2012 г. 1:25
    1 марта 2012 г. 12:49