Share via


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.

Voir aussi

Référence

SPPermissionCollection classe

SPPermissionCollection - Membres

Microsoft.SharePoint - Espace de noms