Um serviço de hospedagem e sincronização de arquivos da Microsoft.
Esta resposta foi traduzida automaticamente. Como resultado, pode haver erros gramaticais ou palavras estranhas.
Caro Diógenes,
Isso pode ser feito manualmente por meio da interface do usuário ou automaticamente por meio da API Rest com um fluxo.
Se você for o administrador e compartilhar as pastas apenas com os usuários clicando em Compartilhar, as pastas serão compartilhadas com o nível de permissão exclusivo.
Você pode clicar na pasta uma a uma>... >Gerenciar acesso>... >Configurações avançadas>selecione o usuário e clique em Remover permissões do usuário.
Se houver muitas pastas, você precisa fazer isso uma a uma e pode ser demorado.
Para fazer isso automaticamente, você pode criar um fluxo para fazer isso. Pode ser um pouco difícil.
Primeiro, você precisa obter a ID da função de nível de permissão e a ID de usuário específica em cada pasta no fluxo e, em seguida, remover os níveis de permissão do usuário específico das pastas automaticamente.
Primeiro, obtenha a ID do item da pasta, a ID da função de nível de permissão e a ID do usuário e combine-as em uma matriz para o usuário específico.
Como demonstração, crio duas pastas Folder1 e Folder2. Quero remover todos os níveis de permissão exclusivos do usuário 3 nas duas pastas.
Gere uma matriz de variáveis UserInformation para todas as informações de permissão do usuário nas duas pastas e uma matriz de variáveis Filtered User Information para as informações de permissão do usuário 3 nas duas pastas.
Compondo: items('Apply_to_each')?[' id'] para obter os IDs de pasta.
Chame _api/web/lists/getbytitle('libraryname')/items(itemid)/RoleAssignments?$expand=Member/Users,RoleDefinitionBindings para obter todas as informações de permissão do usuário. Substitua a parte realçada pelos parâmetros em seu ambiente.
Compose2: outputs('Send_an_HTTP_request_to_SharePoint')? ['corpo']? ['d']? ['resultados']
.
Compose3: items('Apply_to_each_2')? ['Membro']? ['Id'] para obter o ID do usuário.
Compose4: items('Apply_to_each_2')? ['Membro']? ['Title'] para obter o nome de usuário.
Compose5: items('Apply_to_each_2')? ['RoleDefinitionBindings']? ['resultados'][0]['Id'] para obter a ID da função no nível de permissão do usuário.
Acrescente a matriz UserInformation.
{
"ItemID":"@{outputs('Compose')}",
"ID do usuário": "@{outputs('Compose_3')}",
"UserTitle": "@{outputs('Compose_4')}",
"PermissionID": "@{outputs('Compose_5')}"
}
Filtre as informações de permissão para o usuário 3 na matriz UserInformation.
item()? ['UserTitle'] é igual ao usuário 3.
Compose7: items('Apply_to_each_3')?[' UserID'] para obter oID do usuário 3.
Composição8: itens('Apply_to_each_3')? ['PermissionID'] para obter a ID de permissão do usuário 3.
Compose9: items('Apply_to_each_3')?[' ItemID'] para obter a ID da pasta.
Anexe a matriz de informações do usuário filtrada à matriz de filtro do Usuário 3, incluindo as informações de permissão.
{
"ID do usuário": "@{outputs('Compose_7')}",
"PermissionID": "@{outputs('Compose_8')}",
"ItemID": "@{outputs('Compose_9')}"
}
Por fim, use a chamada _api/web/lists/getbytitle('libraryname')/items(itemid)/roleassignments/removeroleassignment(principalid=userid,roleDefId=permissionid) para remover automaticamente os níveis de permissão do usuário em todas as pastas necessárias.
A fórmula na minha demonstração é _api/web/lists/getbytitle('Library1')/items(@{items('Apply_to_each_4')?[' ItemID']})/roleassignments/removeroleassignment(principalid=@{items('Apply_to_each_4')?[' UserID']},roleDefId=@{items('Apply_to_each_4')?[' PermissionID']}).
.
Espero que as informações acima ajudem você.
Obrigado pelo seu esforço e tempo.
Sinceramente
Penhasco | Moderador da Comunidade Microsoft