Neo4j – Auswertung aller effektiven Berechtigungen auf Verzeichnissen (inkl. Unterverzeichnis mit exp. Rechten)

Alle Verzeichnisse mit expl. Rechten ausgehend von einem Startverzeichnisse-> Alle effektiv berechtigten Accounts mit den Recht, Propagation, explizit

Input: ID des Ausgangsverzeichnisses

Output: CSV-Liste mit dem Ergebnis

 

match (ini)-[:rel_child0*0..]->(pfade)<-[r1:rel_right0 {explicit:1}]-r where id(ini) =1358315 with pfade 
match (pfade)<-[r1:rel_right0 ]-ace-[r0:rel_ace]->a-[:rel_member*0..]->g return distinct pfade.path,CASE

WHEN pfade.inheritance = "1" THEN "ein" else "aus" end as Vererbung , g.name,r1.explicit, CASE

WHEN ace.ace = "278" or ace.ace = "1048854" THEN "write"

WHEN ace.ace = "131209" or ace.ace= "1179785" THEN "Read"

WHEN ace.ace = "131241" or ace.ace ="1179817" THEN "Read and Excecute"

WHEN ace.ace = "131487" or ace.ace= "1180063" THEN "Read and Write"

WHEN ace.ace = "131519" or ace.ace= "1180095" THEN "Read and Execute and Write"

WHEN ace.ace = "1245631" or ace.ace= "197055" THEN "Modify"

WHEN ace.ace = "1180159" THEN "ModifyPlus"

WHEN ace.ace = "2032127" THEN "Fullcontrol"

Else "Special Permission"

END as Permission, CASE

WHEN ace.ace_flags = "0" THEN "für diesen Ordner (bei Listrechten üblich)"

WHEN ace.ace_flags = "1" THEN "für diesen Ordner und Dateien"

WHEN ace.ace_flags = "2" THEN "für diesen Ordner und Unterordner"

WHEN ace.ace_flags = "3" THEN "für diesen Ordner, Unterordner und Dateien (Standard)"

WHEN ace.ace_flags = "6" THEN "für diesen Ordner und Unterordner"

WHEN ace.ace_flags = "7" THEN "für diesen Ordner, Unterordner und Dateien (Standard)"

WHEN ace.ace_flags = "9" THEN "für die Dateien"

WHEN ace.ace_flags = "10" THEN "für die Unterordner"

WHEN ace.ace_flags = "11" THEN "für Unterordner und Dateien"

WHEN ace.ace_flags = "13" THEN "für die Dateien"

WHEN ace.ace_flags = "14" THEN "für Unterordner"

WHEN ace.ace_flags = "15" THEN "für Unterordner und Dateien"

WHEN ace.ace_flags = "16" THEN "für diesen Ordner (bei Listrechten üblich)"

WHEN ace.ace_flags = "18" THEN "für diesen Ordner und Unterordner"

WHEN ace.ace_flags = "19" THEN "für diesen Ordner, Unterordner und Dateien (Standard)"

WHEN ace.ace_flags = "25" THEN "für Dateien"

WHEN ace.ace_flags = "27" THEN "für Unterordner und Dateien"

END as Propagation order by pfade.path;

 

 

Translate »