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.