Compartilhar via


SPPermissionCollection.AddCollection method

NOTE: This API is now obsolete.

Adiciona os usuários e suas permissões a uma lista, modifica as permissões de usuários para obter uma lista, modifica as permissões de um grupo existente para uma lista ou modifica as permissões de uma função existente de um site.

Namespace:  Microsoft.SharePoint
Assembly:  Microsoft.SharePoint (in Microsoft.SharePoint.dll)

Syntax

'Declaração
<ObsoleteAttribute("Use the SPRoleAssignmentCollection class instead")> _
Public Sub AddCollection ( _
    addUsersInfo As SPUserInfo(), _
    addUsersPermissions As SPRights(), _
    addGroupsNames As String(), _
    addGroupsPermissions As SPRights(), _
    addRolesNames As String(), _
    addRolesPermissions As SPRights() _
)
'Uso
Dim instance As SPPermissionCollection
Dim addUsersInfo As SPUserInfo()
Dim addUsersPermissions As SPRights()
Dim addGroupsNames As String()
Dim addGroupsPermissions As SPRights()
Dim addRolesNames As String()
Dim addRolesPermissions As SPRights()

instance.AddCollection(addUsersInfo, _
    addUsersPermissions, addGroupsNames, _
    addGroupsPermissions, addRolesNames, _
    addRolesPermissions)
[ObsoleteAttribute("Use the SPRoleAssignmentCollection class instead")]
public void AddCollection(
    SPUserInfo[] addUsersInfo,
    SPRights[] addUsersPermissions,
    string[] addGroupsNames,
    SPRights[] addGroupsPermissions,
    string[] addRolesNames,
    SPRights[] addRolesPermissions
)

Parâmetros

  • addUsersInfo
    Type: []

    Uma matriz de SPUserInfo que especifica informações sobre usuários, inclusive nomes de usuário, endereços de email, os nomes para exibição e observações sobre os usuários.

  • addUsersPermissions
    Type: []

    Uma matriz de SPRights que especifica as permissões de um usuário.

  • addGroupsNames
    Type: []

    Uma matriz de seqüência de caracteres que especifica os nomes de grupo.

  • addGroupsPermissions
    Type: []

    Uma matriz de SPRights que especifica as permissões de um grupo.

  • addRolesNames
    Type: []

    Uma matriz de seqüência de caracteres que especifica os nomes de funções.

  • addRolesPermissions
    Type: []

    Uma matriz de SPRights que especifica permissões para uma função.

Comentários

Os parâmetros para o método AddCollection funcionam em pares, um par para adicionar ou modificar os usuários e suas permissões, um par para modificar as permissões de funções e um par para modificar as permissões dos grupos. O número de elementos contidos nas matrizes para cada par deve corresponder. Passe a null reference (Nothing in Visual Basic) para os parâmetros que você não pretende implementar.

Se você alterar as permissões de um usuário, uma função ou um grupo de sites para obter uma lista, as permissões para o site original são mantidas. As alterações aplicam-se apenas à lista. Se você adicionar usuários e permissões para uma lista, mas não para o site como um todo, os usuários adquirem permissões de convidado para o site.

Examples

O exemplo de código a seguir usa todos os seis parâmetros do método AddCollection para modificar as permissões de usuários do site para o qual a propriedade Notes contém "2" e modificar as permissões de lista de grupos e funções especificadas.

O exemplo repete duas vezes através da coleção de usuários para o site especificado, uma vez para contar o número de usuários cujas anotações contêm "2" e usar esse número para definir o tamanho da matriz associado SPRights e uma vez para atribuir cada um desses usuários para uma matriz de SPUserInfo .

O símbolo de pipe ("|") no C# ou Or no Microsoft Visual Basic é usado para delimitar vários direitos para uma única permissão.

Dim siteCollection As SPSite = SPContext.Current.Site
Dim site As SPWeb = siteCollection.AllWebs("Site_Name")
Dim list As SPList = site.Lists("List_Name")
Dim perms As SPPermissionCollection = list.Permissions
Dim users As SPUserCollection = site.Users

Dim i As Integer = 0
Dim j As Integer = 0

Dim user As SPUser

For Each user In  users

    If user.Notes = "2" Then

        i = i + 1

    End If

Next user

Dim userInfo(i) As SPUserInfo

For Each user In  users

    If user.Notes = "2" Then

        userInfo(j).Email = user.Email
        userInfo(j).LoginName = user.LoginName
        userInfo(j).Name = user.Name
        userInfo(j).Notes = user.Notes + " changed to 3"

        j = j + 1

    End If

Next user

Dim permsIndiv(userInfo.Length) As SPRights
Dim k As Integer

For k = 0 To permsIndiv.Length - 1

    permsIndiv(k) = SPRights.FullMask

Next k

Dim roles(2) As String = 
    {"Role_1", "Role_2", "Role_3"}
Dim permsRoles(roles.Length) As SPRights
Dim l As Integer

For l = 0 To permsRoles.Length - 1

    permsRoles(l) = SPRights.AddListItems Or SPRights.ManageLists

Next l

Dim groups(2) As String = 
    {"Group_1", "Group_2", "Group_3"}
Dim permsGroups(groups.Length) As SPRights
Dim m As Integer

For m = 0 To permsGroups.Length - 1

    permsGroups(m) = 
        SPRights.AddListItems Or SPRights.ManageLists

Next m

perms.AddCollection(userInfo, permsIndiv, groups, 
    permsGroups, roles, permsRoles)
SPSite oSiteCollection = SPContext.Current.Site;
SPWeb oWebsite = oSiteCollection.AllWebs["Site_Name"];
SPList oList = oWebsite.Lists["List_Name"];
SPPermissionCollection collPermissions = oList.Permissions;
SPUserCollection collUsers = oWebsite.Users;
int intIndexCounter = 0;
int intIndexCurrent = 0;

foreach (SPUser oUser in collUsers)
{

    if (oUser.Notes == "2")
    {
        intIndexCounter = intIndexCounter + 1;
    }
}

SPUserInfo[] oUserInfo = new SPUserInfo[intIndexCounter];

foreach (SPUser oUser in collUsers)
{

    if (oUser.Notes == "2")
    {
        userInfo[intIndexCurrent].Email = oUser.Email;
        userInfo[intIndexCurrent].LoginName = oUser.LoginName;
        userInfo[intIndexCurrent].Name = oUser.Name;
        userInfo[intIndexCurrent].Notes = oUser.Notes + " changed to 3";

        intIndexCurrent = intIndexCurrent + 1;
    }
}

SPRights[] collIndividualPermissions = new SPRights[oUserInfo.Length];

for (int k=0; k<collIndividualPermissions.Length; k++)
{
    collIndividualPermissions[k] = SPRights.FullMask;
}

string[] strRoles = new string[3]{"Role_1", "Role_2", 
    "Role_3"};

SPRights[] collRolesPermissions = new SPRights[strRoles.Length];

for (int l = 0; l<collRolesPermissions.Length; l++)
{
    collRolesPermissions[l] = SPRights.AddListItems | SPRights.ManageLists;
}

string[] strGroups = new String[3]{"Group_1", 
    "Group_2", "Group_3"};

SPRights[] collGroupPermissions = new SPRights[strGroups.Length];

for (int m = 0; m<collGroupPermissions.Length; m++)
{
    collGroupPermissions[m] = SPRights.AddListItems | 
        SPRights.ManageLists;
}

collPermissions.AddCollection(oUserInfo, 
    collIndividualPermissions, strGroups, 
    collGroupPermissions, strRoles, collRolesPermissions);
oWebsite.Dispose();

Dica

Determinados objetos implementam a interface IDisposable , e você deve evitar reter esses objetos na memória depois que eles não são mais necessários. Para obter informações sobre boas práticas de codificação, consulte Disposing Objects.

Ver também

Referência

SPPermissionCollection class

SPPermissionCollection members

Microsoft.SharePoint namespace