Vilka grupper har rätt att läsa en EPiServer-sida?
Att få ut en lista över vilka grupper som har rätt att läsa en specifik sida i EPiServer låter lätt som en plätt, och det är det också!
Jag bloggar om detta eftersom jag själv fick leta innan jag hittade en lösning. Vad jag ville göra var att kontrollera om mina användargrupper hade rätt att läsa en viss sida i EPiServer.
Den klass du använder för att göra rättighetskontroller mot en sida i EPiServer är AccessControlList och den hittar du under egenskapen ACL på PageData.
Med CurrentPage.ACL.QueryAccess och CurrentPage.ACL.QueryDistinctAccess kan du se vilken typ av rättighet en användare har på en specifik sida. Alltså läs, skriv, skapa osv. Så för att t ex se om den nuvarande användaren har läsrättigheter på den nuvarande sidan använder du QueryDisctinctAccess:
Det var ju bra, men jag behövde en lista på alla användargrupper med rättigheter på en viss sida.
AccessControlList har även ToRawACEArray, en metod som returnerar en array av EPiServer.Security.RawACE. RawACE har i sin tur egenskapen Access för att ange en viss typ av rättighet (läs, skriv osv) och Name för att ange användarnamn eller rollnamn:
Så, att få ut en lista på alla användare och grupper som har en viss rättighet på din sida för är ganska enkelt:
Lätt som en plätt!
Johanna Gustafsson
2010-06-07