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.