Os Papéis ou Funções (Roles) no WordPress pode parecer bastante simples e superficial em um primeiro momento, mas por trás do Administrador, Editor e os outros papéis padrão existe um poderoso sistema de gestão de autorização totalmente extensível. Enquanto alguns defendem que outros CMS levam alguma vantagem quando se trata de segurança e capacidade de extensão, pretendo demonstrar neste primeiro artigo que não é bem assim.

Começando com um passo a passo de como modificar as funções já existentes e então personaliza-las, de forma que você possa utilizar em seu tema ou plugin. Com o uso de poderosos filtros iremos desmistificar a complexidade e a flexibilidade que o WordPress em relação a outros CMS populares muitas vezes apontado como tendo implementações superiores.

wordpress

Entenda User Levels e Roles (Papéis/Funções)

O WordPress introduziu User Levels (níveis de usuários) na versão 1.5, mas rapidamente os substituíram na versão 2.0 por Roles (papéis/funções) e Capabilities (capacidades ou permissões). Os Níveis de usuário ficaram depreciadas a partir da versão WP 3.0, mas ainda podemos vê-los e, muitos plugins ou temas mais antigos, por isso vale a pena saber sobre eles. Basicamente, os níveis mais elevados de usuários têm mais privilégios e podem escrever, editar, publicar, publicar e gerenciar mais do que suas contrapartes de nível inferior.

O nível mais baixo de usuário é identificado pelo papel de assinante. Os assinantes podem acessar, ver e modificar seu próprio perfil, e além disso eles podem ler posts e páginas e comentários.

O maior nível de usuário está reservado para o administrador do site ou proprietário do blog e que inclui level_0 até o level_10, o maior nível de usuário.

As versões anteriores do WordPress eram dotados 11 níveis de level_0 até level_10, com level_0 sendo o nível mais baixo e de menor permissão, enquanto level_10 usuários com permissão de fazer qualquer coisa dentro do WordPress.

Por exemplo os usuários que se cadastram na página de login automaticamente é atribuído o Papel mais baixo, ou seja, Subscriber. O Administrador é criado durante a instalação do software WordPress. O nível de administração tem poder absoluto sobre todos os outros usuários ou seja neste nível as capacidades de adicionar ou excluir usuários, editar os seus conteúdos, promover ou rebaixar alguém para um papel diferente, etc.

Abaixo temos uma relação de como o WordPress trata os antigos níveis de usuários com o sistema de Papéis/Funções:

  • Subscriber = level_0
  • Contributor = level_0 + level_1
  • Author = level_0 + level_1 + level_2
  • Editor = level_0 + level_1 + level_2 … level_7
  • Admin = level_0 + level_1 + level_2 … level_10

A maioria dos sites e blogs não precisam de nenhuma função especial e como eles são o Administrador (admin) e eles tem o controle total com seus criadores de conteúdo e seus respectivos espaço on-line. Além do papel Administrator um novo papel foi adicionado, o Super-admin que entra em cena quando o WordPress é configurado para operar muitos sites, (Multisite). O Multisite foi introduzido junto a esta nova abordagem de Papéis, por isso não há um nível de usuário equivalente atribuido para o Super-admin.

Capacidades ou permissões para os Papéis padrão

Como exposto anteriormente no WordPress temos os seguintes papéis por padrão:

    • Administrator
    • Editor
    • Author
    • Contributor
    • Subscriber

Os papéis estão listado em ordem decrescente de privilégios e assinalados em inglês, pois são papéis padrão.

O Admin(Administrator) é criado quando o WordPress é instalado. O Administrator possui todos os privilégios, incluindo os privilégios de instalar, ativar, editar e apagar/remover plugins, temas, posts, páginas sejam elas privadas ou não, editar o dashboard, gerenciar usuários, categorias, links, opções, comentários e arquivos além de poder importar ou exportar parte ou todo conteúdo de um site WordPress.

Os Editores(Editor) possuem menos privilégios que os administradores, porém eles podem gerenciar seus próprios conteúdos e de outros. Podem editar e excluir páginas ou posts mesmo estando ou não publicadas. Aos editores também cabem a capacidade de gerenciar categorias, links e comentários, podem fazer uploads de arquivos. Adicionalmente também podem postar códigos em páginas, posts e coemntários, assim certifique-se que seus editores são confiáveis uma vez que eles podem postar marcação HTML e Javascript.

Autores(Author) estão abaixo dos editores e seu trabalho é centralizado em escrever seus conteúdos ou posts. Autores podem publicar, editar e apagar os conteúdos e posts que eles criaram e publicaram. No entando eles não podem editar ou excluir outros conteúdos ou posts, Autores não gerenciam, criam ou editam páginas, mas podem fazer uploads de arquivos e claro ler e comentar sobre as suas postagem.

Os Contribuidores(Contributor) possuem menos privilégio que os autores, a eles cabem o privilégio de e editar, apagar e ler suas próprias postagens. Postagem criadas por este papel passam pela moderação de um Editor que pode aprovar e publicar.

E não menos importante, temos os Assinantes (Subscribers) que possuem apenas dois privilégios. Eles podem ler as publicações e conteúdos e poder ver e editar seus próprios profiles.

É importante lembrar que cada papel tem sua própria hierarquia de privilégios(capacidades), como foi exposto acima. Hoje, já que o WordPress é um CMS totalmente amadurecido, a maioria dos sites e sistemas de conteúdo são para negócios e as necessidades de conta de usuário pode ser ligeiramente diferente (dependendo do tipo de CMS). Nos próximos artigos, agora que você já entende em profundidade o que é e como funciona os Papéis e Privilégios, iremos ver como tirar o máximo dessa capacidade que o WordPress nos oferece e utiliza-los dando mais segurança e flexibilidade ao CMS.

Referências

http://codex.wordpress.org/Roles_and_Capabilities

Este artigo publicado no Codex é seu melhor amigo de referência lá encontramos um overview dos papéis padrão, um lista completa dos privilégios e uma tabela com os privilégios padrão para cada papel.

Abraço!