Compartilhar via


SPRoleDefinition class

Define uma definição de função única, incluindo um nome, descrição, propriedades de gerenciamento e um conjunto de direitos.

Inheritance hierarchy

System.Object
  Microsoft.SharePoint.SPRoleDefinition

Namespace:  Microsoft.SharePoint
Assembly:  Microsoft.SharePoint (in Microsoft.SharePoint.dll)

Syntax

'Declaração
Public NotInheritable Class SPRoleDefinition
'Uso
Dim instance As SPRoleDefinition
public sealed class SPRoleDefinition

Comentários

Use a propriedade RoleDefinitions da classe SPWeb para obter a coleção de definições de função para um site da Web. Use um indexador para retornar um único item da coleção. Por exemplo, se a coleção for atribuída a uma variável chamada collRoleDefinitions, use collRoleDefinitions[index] em C# ou collRoleDefinitions(index) no Visual Basic, onde index é o número de índice do item na coleção ou uma seqüência de caracteres que contém o nome da definição de função.

Não há um método para recuperar as atribuições de função de usuário em um objeto de lista de SharePoint Foundation . No entanto, o código a seguir permite que você recupere a lista.

private void AddListRoleAssignmentNodes(SPList objList)
{ 
   try
   {
      if (objList.HasUniqueRoleAssignments)
      {
         SPRoleAssignmentCollection oRoleAssignments =
            objList.RoleAssignments;

         foreach (SPRoleAssignment oRoleAssignment in oRoleAssignments)
         {
            SPPrincipal oPrincipal = oRoleAssignment.Member;
            try
            {
               // Retrieve users having explicit permissions on the list
               SPUser oRoleUser = (SPUser)oPrincipal;
            }
            catch (Exception ex)
            {
               string msg = ex.Message;
            }
            try
            {
               // Retrieve user groups having permissions on the list
               SPGroup oRoleGroup = (SPGroup)oPrincipal;

               if (oRoleGroup.Users.Count > 0)
               { 
                  string strGroupName = oRoleGroup.Name;
                  // Add code here to retrieve Users inside this User-Group
               }
            }
            catch (Exception ex)
            {
               string msg = ex.Message;
            }
         }
      }
   }
   catch (Exception ex)
   {
      string msg = ex.Message;
   }
}
Private Sub AddListRoleAssignmentNodes(ByVal objList As SPList)
   Try
     If objList.HasUniqueRoleAssignments Then
       Dim oRoleAssignments As SPRoleAssignmentCollection = objList.RoleAssignments

       For Each oRoleAssignment As SPRoleAssignment In oRoleAssignments
         Dim oPrincipal As SPPrincipal = oRoleAssignment.Member
         Try
            ' Retrieve users having explicit permissions on the list
            Dim oRoleUser As SPUser = CType(oPrincipal, SPUser)
         Catch ex As Exception
            Dim msg As String = ex.Message
         End Try
         Try
            ' Retrieve user groups having permissions on the list
            Dim oRoleGroup As SPGroup = CType(oPrincipal, SPGroup)

            If oRoleGroup.Users.Count > 0 Then
              Dim strGroupName As String = oRoleGroup.Name
              ' Add code here to retrieve Users inside this User-Group
            End If
         Catch ex As Exception
            Dim msg As String = ex.Message
         End Try
       Next oRoleAssignment
     End If
   Catch ex As Exception
     Dim msg As String = ex.Message
   End Try
End Sub

Examples

O exemplo de código a seguir modifica as permissões base de uma definição de função especificada.

using(SPWeb oWebsite = SPContext.Current.Site.AllWebs["Site_Name/Subsite_Name"])
{
    SPRoleDefinitionCollection collRoles = oWebsite.RoleDefinitions;

    SPRoleDefinition oRoleDefinition = collRoles["Definition_Name"];
    oRoleDefinition.BasePermissions = SPBasePermissions.AddListItems |
        SPBasePermissions.BrowseDirectories |
        SPBasePermissions.EditListItems |
        SPBasePermissions.DeleteListItems |
        SPBasePermissions.AddDelPrivateWebParts;
    oRoleDefinition.Update();
}
Using oWebsite As SPWeb = SPContext.Current.Site.AllWebs("Site_Name/Subsite_Name")
   Dim collRoles As SPRoleDefinitionCollection = oWebsite.RoleDefinitions

   Dim oRoleDefinition As SPRoleDefinition = collRoles("Definition_Name")
   oRoleDefinition.BasePermissions = SPBasePermissions.AddListItems Or SPBasePermissions.BrowseDirectories Or SPBasePermissions.EditListItems Or SPBasePermissions.DeleteListItems Or SPBasePermissions.AddDelPrivateWebParts
   oRoleDefinition.Update()
End Using

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.

Thread safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Ver também

Referência

SPRoleDefinition members

Microsoft.SharePoint namespace