Overview

Muitas vezes precisamos definir permissões diferentes para itens de uma mesma lista. Pro exemplo, tenho uma lista de documento onde usuários de dois departamentos armazenam arquivos.

Porém, os usuário do Deparatmento 1 não podem ver os arquivos do Departamento 2 e vice-versa.

Para resolver isso podemos usar um campo do tipo usuário ou grupo como metadados, que indica o grupo que tema acesso ao documento. E um fluxo de trabalho que executa sempre que um arquivo é incluído ou alterado. O fluxo remove a permissão dos dois grupo e adiciona a permissão só para o grupo informado no campo.

Solução

Tenho uma lista de contatos com um campo do tipo usuário ou grupo chamado Departamento. Conforme abaixo:

Tenho dois grupos distintos que usam esta lista para incluir seus contatos: Risco de Crédito e Risco de Mercado, ambos com permissão de colaboração.

Sendo assim, vamos criar um fluxo de trabalho no SharePoint Designer para esta lista que remove as permissões dos dois grupo e inclui apenas para o grupo informado no campo Departamento.

Um detalhe importante é que provavelmente o usuário que está incluindo ou alterando o item não tem permissão para alterar as permissões do item. Então para garantirmos a execução do fluxo de trabalho devemor usar um Impersonate Step.

O Impersonate Step é um passo do fluxo de trabalho que é executado não pelo usuário que iniciou o fluxo mas sim com o usuário que criou o fluxo, usando suas respectivas permissões, ou seja, se eu estou criando este fluxo de trabalho com o usuário administrador do SharePoint este passo será executado usando todos os poderes de administrador. Inclusive o poder de alterar as permissões do Item.

Para que a opção do impersonate step fique habilitada na Ribbon clique fora do step que está na tela, ou na barra superior da caixinha do step fazendo com que a barra de título do step fique laranja, conforme abaixo:

Dentro do impersonate step inclua a ação Remover Permissões do Item da Lista informando a permissão que você deseja remover (no caso, a permissão que os grupos têm na lista), nos usuários inclua todos os grupos que têm acesso à lista.

Ainda no impersonate step inclua a ação Adicionar Permissões do Item da Lista informando a permissão que você deseja adicionar, nos usuários escolha Workflow Lookup for a User, em Data source mantenha Current Item e em Field from source selecione o campo que contêm o grupo ou usuário que deverá ter acesso ao item.

Abaixo segue como deve ficar o nosso workflow:

Salve o Workflow e efetue o teste.

Quando você incluir ou alterar um novo item todas as permissões dele serão removidas e apenas o grupo informado no campo departamento receberá o acesso novamente.

Anúncios