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

Por Fernando Viana e Sá
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=Gerente

Passo 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ãoID de permissão
Controlo total1073741829
Ler1073741826
Contribuir1073741827


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!

Ver mais artigos

Entre em Contato

Vamos juntos transformar sua dor
em solução!

#moveFast