Share via


del método SPPermissionCollection.AddCollection

NOTA: esta API está ahora obsoleta.

Agrega los usuarios y sus permisos a una lista, modifica los permisos de los usuarios para obtener una lista, modifica los permisos de un grupo existente para una lista o modifica los permisos de una función existente para un sitio.

Espacio de nombres:  Microsoft.SharePoint
Ensamblado:  Microsoft.SharePoint (en Microsoft.SharePoint.dll)

Sintaxis

'Declaración
<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
    Tipo: []

    Una matriz SPUserInfo que especifica la información acerca de los usuarios, incluidos los nombres de usuario, direcciones de correo electrónico, nombres para mostrar y notas acerca de los usuarios.

  • addUsersPermissions
    Tipo: []

    Una matriz SPRights que especifica los permisos para un usuario.

  • addGroupsNames
    Tipo: []

    Una matriz de cadenas que especifica los nombres de grupo.

  • addGroupsPermissions
    Tipo: []

    Una matriz SPRights que especifica los permisos para un grupo.

  • addRolesNames
    Tipo: []

    Una matriz de cadenas que especifica los nombres de función.

  • addRolesPermissions
    Tipo: []

    Una matriz SPRights que especifica los permisos para una función.

Comentarios

Los parámetros para el método AddCollection de trabajo en pares, un par para agregar o modificar usuarios y sus permisos, un par para modificar los permisos de funciones y un par para modificar los permisos de grupos. Debe coincidir con el número de elementos incluidos en las matrices para cada par. Pase una referencia null (Nothing en Visual Basic) para los parámetros que desea implementar.

Si cambia los permisos de un usuario, una función o un grupo entre sitios para obtener una lista, se mantienen los permisos para el sitio originales. Los cambios se aplican únicamente a la lista. Si agrega usuarios y permisos para una lista, pero no para todo el sitio, los usuarios adquieren los permisos de invitado para el sitio.

Ejemplos

En el ejemplo de código siguiente se usa todos los seis parámetros del método AddCollection para modificar los permisos de los usuarios del sitio para el que la propiedad Notes contiene "2" y para modificar los permisos de la lista de grupos y roles especificados.

En el ejemplo se recorre dos veces en la colección de los usuarios para el sitio especificado, una vez para contar el número de usuarios cuyas notas contienen "2" y utilizar este número para establecer el tamaño de la matriz de asociado SPRights y una vez para cada uno de estos usuarios asignar a una matriz de SPUserInfo .

El símbolo de barra vertical ("|") en C# o Or en Microsoft Visual Basic se utiliza para delimitar varios derechos para un permiso único.

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();

Nota

Determinados objetos implementan la interfaz de IDisposable y, a continuación, se debe evitar la conservación de estos objetos en la memoria que ya no se necesitan. Para obtener información acerca de buenas prácticas de codificación, vea Disposing Objects.

Vea también

Referencia

clase SPPermissionCollection

Miembros SPPermissionCollection

Espacio de nombres Microsoft.SharePoint