Spring til indholdet

Bryd og ret rettigheder på et listeelement med Power Automate

Sådan brydes arven på et element, så det får præcis de rettigheder, det skal have — uden at røre resten af listen.

Opdateret Power AutomateSharePointAdgangsstyringSharePoint Online 1 min. læsning

Et listeelement arver som udgangspunkt rettighederne fra sin liste. Skal ét enkelt element have andre rettigheder end resten — en kontrakt kun to personer må se, en ansøgning der låses, når den er behandlet — skal arven brydes først. Det kan Power Automate gøre, men ikke med en almindelig SharePoint-handling.

Fremgangsmåde#

Bryd arven med en Send an HTTP request to SharePoint:

Metode:  POST
URI:     _api/lists/getbytitle('<listenavn>')/items(<id>)/breakroleinheritance(copyRoleAssignments=false,clearSubscopes=true)

copyRoleAssignments=false er det vigtige. Med true tager elementet en kopi af listens rettigheder med sig, og så skal de fjernes igen bagefter. Med false står elementet tomt, og kun de rettigheder, der faktisk skal til, bliver givet.

Tildel derefter rettigheder én ad gangen:

Metode:  POST
URI:     _api/lists/getbytitle('<listenavn>')/items(<id>)/roleassignments/addroleassignment(principalid=<id>,roledefid=<rolle>)

Rettigheden tildeles med addroleassignment ud fra elementets ID og brugerens id fra opslaget. 1073741826 er rettighedsniveauet Læse.

principalid er brugerens id på det pågældende websted — ikke deres UPN og ikke deres Entra-objekt-id. Det skal slås op først, og det er den fejl, der oftest koster en halv time.

Brugerens id slås op ud fra e-mailadressen med getByEmail og den dynamiske værdi Created By Email.

Det der driller#

  • Arven skal brydes før tildelingen. Gøres det omvendt, går tildelingen til listen og ikke til elementet.
  • clearSubscopes=true rydder rettigheder på eventuelle underliggende elementer. På et dokumentbibliotek med mapper er det sjældent det, der er brug for.
  • Et flow kører som den, der har forbindelsen. Den konto skal selv kunne administrere rettigheder på listen, ellers fejler kaldet med 403 uden at sige hvorfor.

Alle noter