Members vs. Kakapo Roles: gerir permissões que se aguentam
Um plugin de permissões avalia-se por uma única pergunta: a permissão aguenta-se também quando ninguém está a clicar pelo backend? Muito do que se chama «ocultar» só altera a vista — os dados continuam expostos, à distância de um pedido à REST API. Esta comparação ordena o Members e o Kakapo Roles segundo esse critério.
A resposta curta
O Members é um plugin de permissões gratuito e consolidado: criar e editar funções, atribuir permissões, proteger conteúdos por função. É leve, muito difundido e suficiente para a maioria dos casos simples.
O Kakapo Roles atua um nível mais abaixo. Não gere apenas funções e permissões, mas também o que um utilizador chega a ver no backend — menu de administração, biblioteca de multimédia, widgets, shortcodes —, e impõe expressamente as regras de visibilidade também na REST API. A isto juntam-se um registo de alterações, uma reciclagem para funções apagadas e importação/exportação.
Resumindo: quem quer criar funções e proteger conteúdos vai longe com o Members e não paga nada. Quem quer dar a um cliente um backend arrumado, documentar permissões de forma rastreável ou evitar que uma regra afete apenas a interface está mais bem servido com o Kakapo Roles.
O que ambos fazem
- Criar, renomear e apagar funções próprias
- Definir permissões por função, incluindo as de tipos de conteúdo personalizados
- Dar ou retirar permissões adicionais a utilizadores individuais
- Restringir conteúdos a determinadas funções
- Várias funções por utilizador
Até aqui, a escolha é uma questão de gosto. Daqui para baixo, fica interessante.
Onde os dois se distinguem
| Pergunta | Members | Kakapo Roles |
|---|---|---|
| Preço | gratuito | plugin pago, uma licença para nove |
| Permissões de artigos também através da REST API | verificar | sim, impostas expressamente |
| Ocultar o menu de administração por função | com extensões | integrado |
| Limitar a biblioteca de multimédia aos próprios ficheiros | com extensões | integrado |
| Widgets e menus de navegação por função | — | integrado |
| Permitir shortcodes por função | — | integrado |
| Redirecionamento após o login por função | — | integrado |
| Reciclagem para funções apagadas | — | sim, com restauro |
| Registo de alterações | — | sim, quem alterou que permissão e quando |
| Importação e exportação das permissões | — | sim, como ficheiro |
| Proteção contra escalada de permissões | verificar | get_editable_roles é respeitado, também em rede |
| Vários sites | cada site individualmente | estado remoto e uma licença para todos |
A diferença que conta: ocultar não é bloquear
Se um artigo deve ser visível «apenas para determinadas funções», há duas formas de o implementar. Uma oculta-o nas listas e no frontend. A outra recusa o acesso — em todo o lado, incluindo onde ninguém clica.
A diferença não é um pormenor. A REST API do WordPress está acessível por predefinição; um pedido a /wp-json/wp/v2/posts devolve artigos em JSON, sem autenticação. Uma regra que só altera a vista não tem aí qualquer efeito — o conteúdo pensado «só para membros» aparece em texto simples na resposta.
Por isso, o Kakapo Roles impõe a regra de visibilidade também na REST API. Esta única linha é a razão pela qual um plugin de permissões pode sequer ser verificado: abre o teu endereço protegido uma vez como JSON, sem sessão iniciada. Se o conteúdo lá estiver, a regra não protege nada.
Podes fazer este teste com qualquer plugin, incluindo o que estás a usar agora: protege um artigo, termina a sessão, abre /wp-json/wp/v2/posts?search=…. Demora um minuto e responde a mais do que qualquer lista de funcionalidades.A segunda armadilha: quem pode atribuir permissões?
Um plugin de permissões que permite a qualquer pessoa com acesso à interface dar mais permissões a si própria anula-se a si mesmo. O WordPress tem uma salvaguarda para isso: get_editable_roles() determina que funções alguém pode sequer editar. Um plugin que a ignora abre precisamente o caminho que devia fechar.
Em multisite, junta-se uma segunda questão: aí, as funções estão em parte definidas ao nível da rede. Quem as sobrescreve a partir de um subsite altera-as para todos os sites. O Kakapo Roles respeita ambas — a salvaguarda e a fronteira entre site e rede.
Quando o Members é a melhor escolha
- Precisas de funções e permissões, e de mais nada
- O orçamento é zero
- Trabalhas com um único site e poucos utilizadores
- Queres um plugin que faça exatamente uma coisa
Quando o Kakapo Roles é a melhor escolha
- Entregas um backend a um cliente e queres arrumá-lo — menu, biblioteca de multimédia, widgets
- Os conteúdos protegidos devem estar protegidos também através da REST API
- Tens de poder comprovar quem recebeu que permissão e quando
- Queres construir uma estrutura de permissões uma vez e transferi-la para outros sites
- De qualquer forma, já usas outros plugins Kakapo e queres uma fatura em vez de cinco
Mudança: o que fazer
- Anota que funções próprias existem e que permissões lhes estão associadas — basta uma captura de ecrã da matriz.
- Faz um backup. As permissões estão na base de dados, e um erro afeta todos os utilizadores ao mesmo tempo.
- Instala o Kakapo Roles e introduz a chave de licença.
- Recria as funções e compara a matriz linha a linha com as tuas notas.
- Inicia sessão com um utilizador de teste por função e vê o que ele realmente vê.
- Faz o teste REST para um conteúdo protegido.
- Só depois desativa o plugin antigo — sem o apagar, durante duas semanas.
Dois plugins de permissões ao mesmo tempo são uma má situação: ambos escrevem nas mesmas funções, e ganha quem guardar por último. Mantém o período de transição curto e, durante esse tempo, só altera coisas num dos dois.
Perguntas frequentes
O Kakapo Roles aproveita as minhas funções existentes?
O que acontece às minhas funções se eu apagar o plugin?
Posso recuperar uma função apagada?
Uma restrição também funciona no frontend?
O que acontece sem uma licença válida?
Kakapo Roles — pague uma vez, use para sempre.
Os nove plugins por 149 € uma vez em vez de 13 € por mês. Pagamento seguro via Stripe. Nos primeiros 14 dias: problema resolvido ou dinheiro de volta.
Garantir o Lifetime Todas as funcionalidades