Defina a permissão de nível na lista do SharePoint com Power Automate

Introdução
Na Lista do SharePoint, se alguma permissão (como Ler, Contribuir ou Controle Total) for fornecido a qualquer Usuário ou Grupo do SharePoint, esse usuário ou pessoa desse grupo terá seu nível de acesso a todos os itens.
No entanto, às vezes pode ser necessário limitar o acesso do usuário apenas aos seus próprios itens criados ou modificados.
Cito um exemplo como no caso dos holerites dos funcionários. Enquanto todos os membros do Departamento de RH (grupo), que gera holerites, podem acessar todos os holerites de todos os funcionários da organização em qualquer local de armazenamento central, o holerite do usuário somente é acessível para o usuário correspondente
Considerando cenários do mundo real, isso pode parecer um processo manual complicado, considerando o volume de itens para os quais as permissões devem ser fornecidas exclusivamente a um conjunto específico de usuários de grupos, uma vez que o comportamento padrão de cada item da lista é herdar de seu pai (Lista).
Portanto, uma abordagem para interromper e redefinir a permissão no nível do item é usar o Power Automate, que quebra a herança de permissão padrão e configura uma permissão exclusiva em cada item da lista do SharePoint.
Criando a Solução
Criar lista do SharePoint
Primeiramente, usei outro exemplo no artigo para demonstrar o estudo de caso e sua solução. Assim, comece adicionando uma lista do SharePoint chamada ‘ Lista de Contatos ‘ ao conteúdo do site. Então, nessa ‘Lista de Contatos ‘, adicione uma coluna Gerente do tipo Pessoa ou Grupo .
Contudo, estou tentando associar um gerente para cada item de contato na lista, a quem será atribuído acesso de contribuição ao item para qualquer modificação no item da lista.
Portanto, as próximas seções demonstram o processo para chegar à solução usando o Power Automate .
Configure o fluxo
Faça login com sua conta do Microsoft 365 em Power Automate e crie um novo “ fluxo automatizado ”.
Atribua um nome ao fluxo e selecione o gatilho como “ Quando um item é criado ou modificado ”.
Crie e siga as etapas abaixo:
Passo 1
Aponte o gatilho de fluxo para o endereço do site do SharePoint e o nome da lista criada anteriormente.
Passo 2
Adicione a nova etapa como ação “ Enviar uma solicitação HTTP ao SharePoint ”.
Observação: como essa ação será usada várias vezes no processo, renomeie a ação para uma melhor identificação.
Esta ação aqui quebrará a permissão de herança padrão no item da lista.
Preencha os campos da seguinte forma:
Endereço do Site: Selecione o Endereço do Site como no Passo 1
Método: POST
Uri: digite o seguinte texto:
_api/lists/getByTitle('List_Name')/items(@{triggerOutputs()?['body/ID']})/breakroleinheritance(copyRoleAssignments=false,clearSubscopes=true)copyRoleAssignments – especifica se as atribuições de função devem ser copiadas do objeto pai protegível.
clearSubscopes – com o parâmetro clearSubscopes definido como true, a atribuição de função para todos os objetos filho será limpa e esses objetos herdarão as atribuições de função do objeto atual após esta chamada.
Passo 3
A próxima etapa é buscar todos os IDs de gerente de um determinado item dessa lista para modificar seu acesso ao Contribute . Para fazer isso, adicionaremos outra ação “ Enviar uma solicitação HTTP ao SharePoint ” e renomeá-la para identificação desta etapa.
O endereço do site permanece o mesmo.
Use o método GET. E insira o texto abaixo como URI
_api/web/lists/getByTitle(‘List_Name’)/items(@{triggerOutputs()?[‘body/ID’]})?$select=Gerente/Id&$expand=GerentePasso 4
Analise a saída JSON da solicitação “ Enviar uma solicitação HTTP para o SharePoint – Obter lista de usuários ”, usando a ação “Analisar JSON”, conforme mostrado na imagem abaixo.
Cole o texto abaixo no campo Esquema. O esquema nada mais é do que a estrutura e a semântica da saída da etapa anterior (ou seja, a etapa 3).
{ "type": "object", "properties": { "d": { "type": "object", "properties": { "__metadata": { "type": "object", "properties": { "id": { "type": "string" }, "uri": { "type": "string" }, "etag": { "type": "string" }, "type": { "type": "string" } } }, "Manager": { "type": "object", "properties": { "results": { "type": "array", "items": { "type": "object", "properties": { "__metadata": { "type": "object", "properties": { "id": { "type": "string" }, "type": { "type": "string" } } }, "Id": { "type": "integer" } }, "required": [ "__metadata", "Id" ] } } } } } } }}Passo 5
Use o resultado de saída da ação JSON de análise para obter a lista de usuários inteiras, que será iterado para ID de cada gerente que pode ser ID de usuário ou ID de grupo associado com o ID do item específico.
Adicione outra ação “ Enviar uma solicitação HTTP ao SharePoint ” para atribuir a permissão necessária ao ID do item específico.
Método : POST
Uri: Digite o texto abaixo:
_api/lists/getByTitle('List_Name')/items(@{triggerOutputs()?['body/ID']})/roleassignments/addroleassignment(principalid=@{items('Apply_to_each')?['Id']},roledefid=1073741827)PrincipalId : é obtido do campo Id da solicitação JSON do Parse.
RoleDefId: 1073741827 é o ID associado à permissão de contribuição. Consulte a tabela abaixo para funções / acesso e IDs predefinidos associados para atribuição de acordo com o requisito.
Nível de permissão | ID de permissão |
Controlo total | 1073741829 |
Ler | 1073741826 |
Contribuir | 1073741827 |
Isso é tudo, o fluxo está pronto.
Verificando a Solução de Fluxo
Primeiramente, crie um novo item na lista, selecione qualquer Pessoa ou Grupo no campo Gerente e salve o item.
Então, para o item para o qual a modificação foi feita, marque “ Gerenciar Acesso ” para confirmar se a pessoa / grupo selecionado no campo Gerente obteve a permissão de contribuição para aquele item.
Caso você queira conhecer mais detalhes sobre o Microsoft Power Automate antes de começar a utilizá-lo em sua empresa, entre em contato conosco!
Luiz Antonio Sgargeta é sócio fundador e CEO da Trinapse, consultoria brasileira de Microsoft 365 com quase duas décadas de operação, acumula mais de 20 anos em desenvolvimento de software e em ambientes corporativos de alta complexidade.
Ver maisVer menos
Trabalha com SharePoint desde o SharePoint Portal Server 2003 e com .NET desde a versão 1.0. Acompanhou a plataforma em todas as suas reinvenções, do portal de documentos on-premises ao SharePoint Online dentro do Microsoft 365, o que dá a ele uma leitura rara sobre o que muda de verdade e o que é apenas nome novo para o mesmo problema.
No início da carreira atuou em uma das maiores operações de e-commerce do país, em sistemas que não toleram degradação de performance nem indisponibilidade, essa origem definiu o critério que ele aplica até hoje: solução boa é a que sustenta volume real, integra com o legado que já existe e não quebra no pico.
Depois disso, passou por praticamente todo tipo de projeto corporativo, de portais e intranets de milhares de usuários a integrações críticas e automação de processos de ponta a ponta, sempre em grandes empresas e em desafios de alta exigência.
A marca do trabalho dele é a tradução entre tecnologia e negócio, levanta a necessidade real por trás do pedido do cliente, questiona o processo antes de automatizá-lo e desenha a solução pelo resultado esperado, não pela ferramenta disponível, é o que permite conversar com a diretoria sobre retorno e com o time técnico sobre arquitetura na mesma reunião.
Hoje lidera a frente comercial e estratégica da Trinapse e conduz a empresa no novo ciclo da inteligência artificial, com foco em agentes de IA e operação de processos assistida por IA para cooperativas de crédito, agronegócio e indústria. Escreve no blog da Trinapse desde 2019, com mais de 450 artigos sobre IA, SharePoint, Power Platform, Modern Workplace e transformação de processos, sempre a partir de projeto entregue e não de teoria.



