SPPermissionCollection.AddCollection - Méthode
Remarque : cette API est désormais obsolète.
Ajoute des utilisateurs et leurs autorisations à une liste, modifie les autorisations des utilisateurs pour obtenir la liste, modifie les autorisations d'un groupe existant pour obtenir une liste ou modifie les autorisations d'un rôle existant pour un site.
Espace de noms : Microsoft.SharePoint
Assembly : Microsoft.SharePoint (dans Microsoft.SharePoint.dll)
Syntaxe
'Déclaration
<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() _
)
'Utilisation
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
)
Paramètres
addUsersInfo
Type : []Tableau SPUserInfo qui spécifie des informations sur les utilisateurs, y compris les noms d'utilisateur, les adresses électroniques, les noms complets et les notes sur les utilisateurs.
addUsersPermissions
Type : []Tableau SPRights qui spécifie les autorisations d'un utilisateur.
addGroupsNames
Type : []Un tableau de chaînes qui spécifie les noms de groupe.
addGroupsPermissions
Type : []Tableau SPRights qui spécifie les autorisations d'un groupe.
addRolesNames
Type : []Un tableau de chaînes qui spécifie les noms de rôles.
addRolesPermissions
Type : []Tableau SPRights qui spécifie les autorisations d'un rôle.
Remarques
Les paramètres de la méthode AddCollection fonctionnent en paires, une paire pour ajouter ou modifier des utilisateurs et leurs autorisations, une paire pour modifier les autorisations des rôles et une paire pour modifier les autorisations des groupes. Le nombre d'éléments contenus dans les tableaux pour chaque paire doit correspondre. Passer à une référence Null (Rien dans Visual Basic) pour les paramètres que vous ne souhaitez pas mettre en œuvre.
Si vous modifiez les autorisations d'un utilisateur, un rôle ou un groupe intersite pour obtenir une liste, les autorisations pour le site d'origine sont conservées. Les modifications s'appliquent uniquement à la liste. Si vous ajoutez des utilisateurs et des autorisations à une liste mais pas dans le site dans son ensemble, les utilisateurs acquièrent des autorisations Invité pour le site.
Exemples
L'exemple de code suivant utilise tous les six paramètres de la méthode AddCollection pour modifier les autorisations des utilisateurs du site pour lequel la propriété Notes contient « 2 » et de modifier les autorisations de liste pour les groupes et les rôles spécifiés.
L'exemple itère deux fois dans la collection d'utilisateurs pour le site spécifié, une seule fois pour compter le nombre d'utilisateurs dont les notes contiennent des « 2 » et utilise ce nombre pour définir la taille du tableau associé à SPRights et une fois pour chacun de ces utilisateurs assigner à un tableau de SPUserInfo .
Le symbole de canal ("|") dans C# ou Or dans Microsoft Visual Basic est utilisé pour délimiter plusieurs droits d'autorisation unique.
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();
Notes
Certains objets implémentent l'interface IDisposable , et vous devez éviter de conserver ces objets dans la mémoire après que qu'ils ne sont plus nécessaires. Pour plus d'informations sur les bonnes pratiques de codage, consultez Disposing Objects.