Dominando as Permissões Avançadas do UpStream
No mundo dos gerenciadores de projetos, a flexibilidade das permissões é um fator-chave para garantir que as equipes colaborem de maneira eficaz. Com a extensão UpStream Advanced Permissions, você pode personalizar as permissões de forma a atender a quase qualquer cenário. Isso permite que você crie um arquivo XML contendo as diretivas de acesso que você deseja aplicar a diferentes usuários ou funções dentro do seu sistema. Vamos mergulhar nos detalhes de como começar com essa ferramenta poderosa e explorar suas funcionalidades.
Começando com as Permissões Avançadas
Para utilizar o UpStream Advanced Permissions, primeiro você precisa instalar o complemento. Após a instalação, o próximo passo é acessar o painel do WordPress. Vá até a seção UpStream e selecione “Advanced Permissions”. Ao fazer isso, você verá uma opção para ativar as Permissões Avançadas, bem como um campo grande para a inserção do seu XML de permissões. Normalmente, as Permissões Avançadas estão desativadas por padrão.
Uma vez que você tenha elaborado seu XML de permissões para o UpStream, pode habilitar as Permissões Avançadas para implementar o que criou. O layout do XML é bastante direto e, mesmo que você não tenha experiência prévia com XML, há recursos disponíveis para ajudá-lo a entender a estrutura básica.
Estrutura do XML de Permissões do UpStream
Cada documento de permissões XML do UpStream deve começar com uma tag <permissions>
. Dentro desta tag, você define os usuários e, sob cada um deles, as regras de permissões. Os tipos de definições para usuários incluem:
-
Por Função: Para setar permissões a todos os usuários com um determinado papel, utilize a tag
<role>
. O slug do papel pode ser encontrado pelo plugin “Members”, na seção de usuários. -
Por Nome de Usuário: Se quiser definir permissões para um usuário específico, use a tag
<user>
e forneça o nome de usuário correspondente, que você pode ver na lista de usuários do WordPress. -
Por ID de Usuário: Além do nome de usuário, pode-se optar por definir as permissões usando o ID do usuário, utilizando a tag
<id>
.
As ações permitidas incluem “visualizar”, “editar”, “deletar” e “criar”, e estas podem ser combinadas em strings separadas por vírgula, como “view,edit”.
Tags de Objetos e Campos
Tags de Objetos
Sob as tags <permissions>
, você pode definir uma lista de tags de objetos que descrevem os itens para os quais deseja ajustar as permissões. Os tipos de objetos válidos incluem:
- Projeto
- Tarefas
- Arquivos
- Problemas (Bugs)
- Marcos (Milestones)
Tags de Campos
Caso deseje estabelecer permissões em nível de campo para um item específico, você pode usar a tag <field>
. Por padrão, todas as visualizações são permitidas a menos que uma tag de campo seja definida, que então oculta todos os outros campos.
Exemplo Prático
Se quiser permitir que um usuário chamado “sam” edite todos os campos de um projeto, a configuração seria assim:
xml
<permissions>
<user>sam</user>
<project>
<field>title</field>
<field>description</field>
<!-- Outros campos -->
</project>
</permissions>
Caso você adicione apenas o campo de “título”, por exemplo, “sam” apenas visualizará e poderá editar o título do projeto.
Tornando Projetos Publicamente Visíveis
Uma funcionalidade interessante do UpStream Advanced Permissions permite que você torne certos projetos visíveis ao público. Para isso, você pode usar a tag user type="anonymous"
. Por exemplo, se você quiser tornar um projeto com ID 7 publicamente acessível, você configuraria assim:
xml
<permissions>
<user type="anonymous">7</user>
</permissions>
Cabe ressaltar que a visualização pública permite apenas a visualização, não a edição. Portanto, qualquer pessoa que acessar o URL /projects verá todos os projetos que você decidiu tornar públicos.
Casos Práticos de Uso
Exemplo 1: Recriar o Modelo Padrão de Usuário Cliente do UpStream
Para seguir o modelo padrão de permissões dos usuários clientes, você elaboraria seu XML da seguinte maneira:
xml
<permissions>
<role>client_user</role>
<project>
<action>view</action>
<action>comment</action>
</project>
</permissions>
Exemplo 2: Restringir Usuários para Apenas Visualizar e Comentar
Para redefinir o papel do usuário cliente de forma que eles só possam visualizar e comentar, enquanto não podem editar, o código seria:
xml
<permissions>
<role>client_user</role>
<project>
<action>view</action>
<action>comment</action>
<!-- Nota: Não há outras permissões aqui -->
</project>
</permissions>
Exemplo 3: Permitir Criação e Edição de Componentes de Projeto
Este exemplo permite que um usuário específico acesse projetos designados a eles, e crie ou edite componentes do projeto, mas não excluam componentes já existentes:
xml
<permissions>
<user>sam</user>
<project>
<action>create</action>
<action>edit</action>
<action>comment</action>
</project>
</permissions>
Dessa forma, “sam” pode interagir apenas com os projetos que são atribuídos a ele.
Exemplo 4: Redefinição do Papel do Usuário UpStream
Você pode redefinir o papel de um usuário para que eles só possam editar os projetos que criaram:
xml
<permissions>
<role>upstream_user</role>
<project>
<action>edit</action>
<predicate>created_by</predicate>
</project>
</permissions>
Dessa forma, o acesso dos usuários é bem controlado e restrito conforme a necessidade.
Notas Importantes sobre Permissões Avançadas
- Os papéis de Gerente e Administrador têm acesso completo a todos os projetos, independentemente do que estiver no documento de permissões.
- O UpStream automaticamente concede permissão para visualizar se o usuário conseguir criar, editar, deletar ou copiar um objeto.
- Para permitir que os usuários enviem arquivos, é necessário garantir que a capacidade “upload_files” esteja ativada no WordPress.
Campos Disponíveis
Abaixo, veja a lista de nomes de campos que podem ser utilizados nas permissões:
Nomes de Campos de Projeto
- Título
- Descrição
- Status
- Progresso
- Categorias
- Proprietário
- Cliente
- Usuários do Cliente
- Data de Início
- Data de Conclusão
- Lembretes de E-mail
- Registros de Orçamento
- Comentários
Nomes de Campos de Tarefa e Problemas
Esses também possuem campos específicos relacionados ao status, progresso, data de início e fim, e comentários.
Esses detalhes são fundamentais para a criação de permissões sutis, que efetivamente restringem ou liberam o acesso de acordo com as necessidades específicas do gerenciamento de projetos. O UpStream Advanced Permissions é uma ferramenta que, quando bem utilizada, pode transformar a forma como sua equipe interage com os projetos, promovendo colaboração e eficiência. Ao empregar essas configurações, você garante que cada membro da equipe tenha o acesso apropriado, facilitando um fluxo de trabalho harmonioso e seguro.
Avaliações
Não existem opiniões ainda.