Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
| Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
|
private:matverw_database [2013/03/27 20:46] Patrick Wacker zwischenspeicherung |
private:matverw_database [2013/03/28 19:55] (aktuell) Patrick Wacker [rights assignments] some tests |
||
|---|---|---|---|
| Zeile 6: | Zeile 6: | ||
| - | ==== Aufbau ==== | + | ==== rights assignments ==== |
| <graphviz dot left> | <graphviz dot left> | ||
| Zeile 14: | Zeile 14: | ||
| edge [ fontname=Helvetica, fontsize=10 ]; | edge [ fontname=Helvetica, fontsize=10 ]; | ||
| | | ||
| - | subgraph cluster0 { label = "rights"; style="solid"; color="gray"; | + | subgraph cluster0 { label = "rights"; style="solid"; color="gray"; spacing="4"; |
| - | rxuy [label = "{<r1-u1> r1-u1|<r2-u1> r2-u1|<r1-u2> r1-u2|<r2-u2> r2-u2}"]; | + | rxuy [label = "{<r1-u1> r1-u1|<r2-u1> r2-u1|<r1-u2> r1-u2|<r2-u2> r2-u2}", color="blue"]; |
| rxrgy [label = "{<r1-rg1> r1-rg1|<r2-rg1> r2-rg1|<r3-rg1> r3-rg1|<r1-rg2> r1-rg2|<r1-rg3> r1-rg3}"]; | rxrgy [label = "{<r1-rg1> r1-rg1|<r2-rg1> r2-rg1|<r3-rg1> r3-rg1|<r1-rg2> r1-rg2|<r1-rg3> r1-rg3}"]; | ||
| - | rxrgugy [label = "{<r1-rg-ug1> r1-rg-ug1|<r2-rg-ug1> r2-rg-ug2|<r1-rg-ug2> r1-rg-ug2|<r2-rg-ug2> r1-rg-ug2|<r3-rg-ug2> r1-rg-ug2}"]; | + | rxrgugy [label = "{<r1-rg-ug1> r1-rg-ug1|<r2-rg-ug1> r2-rg-ug1|<r1-rg-ug2> r1-rg-ug2|<r2-rg-ug2> r1-rg-ug2|<r3-rg-ug2> r1-rg-ug2}"]; |
| - | rxugy [label = "{<r1-ug1> r1-ug1|<r2-ug1> r2-ug2|<r1-ug12> r1-ug12|<r2-ug12> r1-ug12}"]; | + | rxugy [label = "{<r1-ug1> r1-ug1|<r2-ug1> r2-ug1|<r1-ug12> r1-ug12|<r2-ug12> r1-ug12}"]; |
| } | } | ||
| | | ||
| subgraph cluster1 { label = "right groups"; style="solid"; color="gray"; | subgraph cluster1 { label = "right groups"; style="solid"; color="gray"; | ||
| - | rg [label = "{<rg1> rg1|<rg2> rg2|<rg2> rg2|<rg-ug1> rg-ug1|<rg-ug2> rg-ug2}"]; | + | rg [label = "{<rg1> rg1|<rg2> rg2|<rg3> rg3|<rg-ug1> rg-ug1|<rg-ug2> rg-ug2}"]; |
| } | } | ||
| Zeile 33: | Zeile 33: | ||
| } | } | ||
| - | rxuy:"r1-u1" -> users:"u1" [ arrowhead="open", style="solid" ]; | + | rxuy:"r1-u1":w -> users:"u1":w [ arrowhead="open", style="solid" ]; |
| - | rxuy:"r2-u1" -> users:"u1" [ arrowhead="open", style="solid" ]; | + | rxuy:"r2-u1":w -> users:"u1":w [ arrowhead="open", style="solid" ]; |
| + | rxuy:"r1-u2":w -> users:"u2":w [ arrowhead="open", style="solid" ]; | ||
| + | rxuy:"r2-u2":w -> users:"u2":w [ arrowhead="open", style="solid" ]; | ||
| | | ||
| - | rxrgy:"r1-rg1" -> rg:"rg1" [ arrowhead="open", style="solid" ]; | + | |
| - | rxrgy:"r2-rg1" -> rg:"rg1" [ arrowhead="open", style="solid" ]; | + | rxrgy:"r1-rg1":e -> rg:"rg1":e [ arrowhead="open", style="solid" ]; |
| - | rxrgy:"r3-rg1" -> rg:"rg1" [ arrowhead="open", style="solid" ]; | + | rxrgy:"r2-rg1":e -> rg:"rg1":e [ arrowhead="open", style="solid" ]; |
| - | rxrgy:"r1-rg2" -> rg:"rg2" [ arrowhead="open", style="solid" ]; | + | rxrgy:"r3-rg1":e -> rg:"rg1":e [ arrowhead="open", style="solid" ]; |
| - | rxrgy:"r1-rg3" -> rg:"rg3" [ arrowhead="open", style="solid", label="", color="gray"]; | + | rxrgy:"r1-rg2":w -> rg:"rg2":w [ arrowhead="open", style="solid" ]; |
| - | + | rxrgy:"r1-rg3":w -> rg:"rg3":w [ arrowhead="open", style="solid", label="", color="gray"]; | |
| - | + | ||
| - | { rank="same"; "ug"; "rg"; "users"} | + | rxrgugy:"r1-rg-ug1":e -> rg:"rg-ug1":e [ arrowhead="open", style="solid" ]; |
| + | rxrgugy:"r2-rg-ug1":e -> rg:"rg-ug1":e [ arrowhead="open", style="solid" ]; | ||
| + | rxrgugy:"r1-rg-ug2":w -> rg:"rg-ug2":w [ arrowhead="open", style="solid" ]; | ||
| + | rxrgugy:"r2-rg-ug2":w -> rg:"rg-ug2":w [ arrowhead="open", style="solid" ]; | ||
| + | rxrgugy:"r3-rg-ug2":w -> rg:"rg-ug2":w [ arrowhead="open", style="solid" ]; | ||
| + | |||
| + | rxugy:"r1-ug1":e -> ug:"ug1":e [ arrowhead="open", style="solid" ]; | ||
| + | rxugy:"r2-ug1":e -> ug:"ug1":e [ arrowhead="open", style="solid" ]; | ||
| + | rxugy:"r1-ug12":e -> ug:"ug1":e [ arrowhead="open", style="solid" ]; | ||
| + | rxugy:"r2-ug12":e -> ug:"ug1":e [ arrowhead="open", style="solid" ]; | ||
| + | rxugy:"r1-ug12":e -> ug:"ug2":e [ arrowhead="open", style="solid", color="red"]; | ||
| + | rxugy:"r2-ug12":e -> ug:"ug2":e [ arrowhead="open", style="solid", color="red" ]; | ||
| + | rg:"rg-ug1" -> ug:"ug1" [ arrowhead="open", style="solid" ]; | ||
| + | rg:"rg-ug2" -> ug:"ug2" [ arrowhead="open", style="solid" ]; | ||
| + | | ||
| + | ug:"ug1" -> users:"u1" [ arrowhead="open", style="solid" ]; | ||
| + | rg:"rg1" -> users:"u1" [ arrowhead="open", style="solid" ]; | ||
| } | } | ||
| Zeile 50: | Zeile 68: | ||
| + | ab hier dann der zweite Versuch, vielleicht ist die Darstellung etwas besser | ||
| + | |||
| + | <graphviz dot left> | ||
| + | digraph rights_assignments { | ||
| + | graph [ rankdir="LR" ]; | ||
| + | node [ shape=record, fontname=Helvetica, fontsize=10 ]; | ||
| + | edge [ fontname=Helvetica, fontsize=10 ]; | ||
| + | | ||
| + | subgraph cluster0 { label = "rights"; style="solid"; color="gray"; | ||
| + | r1_u1 [label = "r1-u1"]; | ||
| + | r2_u1 [label = "r2-u1"]; | ||
| + | r1_u2 [label = "r1-u2"]; | ||
| + | r2_u1 [label = "r2-u2"]; | ||
| + | |||
| + | r1_rg1 [label = "r1-rg1"]; | ||
| + | r2_rg1 [label = "r2-rg1"]; | ||
| + | r3_rg1 [label = "r3-rg1"]; | ||
| + | r1_rg2 [label = "r1-rg2"]; | ||
| + | r1_rg3 [label = "r1-rg3"]; | ||
| + | | ||
| + | r1_rg_ug1 [label = "r1-rg-ug1"]; | ||
| + | r2_rg_ug1 [label = "r2-rg-ug1"]; | ||
| + | r1_rg_ug2 [label = "r1-rg-ug2"]; | ||
| + | r2_rg_ug2 [label = "r1-rg-ug2"]; | ||
| + | r3_rg_ug2 [label = "r1-rg-ug2"]; | ||
| + | | ||
| + | r1_ug1 [label = "r1-ug1"]; | ||
| + | r2_ug1 [label = "r2-ug1"]; | ||
| + | r1_ug12 [label = "r1-ug12"]; | ||
| + | r2_ug12 [label = "r1-ug12"]; | ||
| + | } | ||
| + | | ||
| + | subgraph cluster1 { label = "right groups"; style="solid"; color="gray"; | ||
| + | rg1 [label = "rg1"]; | ||
| + | rg2 [label = "rg2"]; | ||
| + | rg3 [label = "rg3"]; | ||
| + | rg_ug1 [label = "rg-ug1"]; | ||
| + | rg_ug2 [label = "rg-ug2"]; | ||
| + | } | ||
| + | |||
| + | subgraph cluster2 { label = "users"; style="filled, dashed"; color="black"; fillcolor="green"; | ||
| + | u1 [label = "u1"]; | ||
| + | u2 [label = "u2"]; | ||
| + | } | ||
| + | | ||
| + | subgraph cluster3 { label = "user groups"; style="solid"; color="gray"; | ||
| + | ug1 [label = "ug1"]; | ||
| + | ug2 [label = "ug2"]; | ||
| + | } | ||
| + | |||
| + | r1_u1 -> u1 [ arrowhead="open", style="solid" ]; | ||
| + | r2_u1 -> u1 [ arrowhead="open", style="solid" ]; | ||
| + | r1_u2 -> u2 [ arrowhead="open", style="solid" ]; | ||
| + | r2_u2 -> u2 [ arrowhead="open", style="solid" ]; | ||
| + | | ||
| + | | ||
| + | r1_rg1 -> rg1 [ arrowhead="open", style="solid" ]; | ||
| + | r2_rg1 -> rg1 [ arrowhead="open", style="solid" ]; | ||
| + | r3_rg1 -> rg1 [ arrowhead="open", style="solid" ]; | ||
| + | r1_rg2 -> rg2 [ arrowhead="open", style="solid" ]; | ||
| + | r1_rg3 -> rg3 [ arrowhead="open", style="solid", label="", color="gray"]; | ||
| + | | ||
| + | r1_rg-ug1 -> rg_ug1 [ arrowhead="open", style="solid" ]; | ||
| + | r2_rg-ug1 -> rg_ug1 [ arrowhead="open", style="solid" ]; | ||
| + | r1_rg-ug2 -> rg_ug2 [ arrowhead="open", style="solid" ]; | ||
| + | r2_rg-ug2 -> rg_ug2 [ arrowhead="open", style="solid" ]; | ||
| + | r3_rg-ug2 -> rg_ug2 [ arrowhead="open", style="solid" ]; | ||
| + | | ||
| + | r1_ug1 -> ug1 [ arrowhead="open", style="solid" ]; | ||
| + | r2_ug1 -> ug1 [ arrowhead="open", style="solid" ]; | ||
| + | r1_ug12 -> ug1 [ arrowhead="open", style="solid" ]; | ||
| + | r2_ug12 -> ug1 [ arrowhead="open", style="solid" ]; | ||
| + | r1_ug12 -> ug2 [ arrowhead="open", style="solid", color="red"]; | ||
| + | r2_ug12 -> ug2 [ arrowhead="open", style="solid", color="red" ]; | ||
| + | |||
| + | rg_ug1 -> ug1 [ arrowhead="open", style="solid" ]; | ||
| + | rg_ug2 -> ug2 [ arrowhead="open", style="solid" ]; | ||
| + | | ||
| + | ug1 -> u1 [ arrowhead="open", style="solid" ]; | ||
| + | rg1 -> u1 [ arrowhead="open", style="solid" ]; | ||
| + | |||
| + | } | ||
| + | </graphviz> | ||