Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
private:matverw_database [2013/03/27 20:13] Patrick Wacker angelegt |
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 rights { | + | subgraph cluster0 { label = "rights"; style="solid"; color="gray"; spacing="4"; |
- | /* style="plaintext"; | + | rxuy [label = "{<r1-u1> r1-u1|<r2-u1> r2-u1|<r1-u2> r1-u2|<r2-u2> r2-u2}", color="blue"]; |
- | color="gray"; | + | 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-ug1|<r1-rg-ug2> r1-rg-ug2|<r2-rg-ug2> r1-rg-ug2|<r3-rg-ug2> r1-rg-ug2}"]; |
- | rxuy [label = "{<r1-u1> r1-u1 |<r2-u1> r2-u1 |<r1-u2> r1-u2 |<r2-u2> r2-u2}"]; | + | rxugy [label = "{<r1-ug1> r1-ug1|<r2-ug1> r2-ug1|<r1-ug12> r1-ug12|<r2-ug12> r1-ug12}"]; |
- | rxrgy [label = "{<r1-rg1> r1-rg1 |<r2-rg1> r2-rg1 |<r3-rg1> r3-rg1 |<r1-rg2> r1-rg2 |<r1-rg3> r1-rg3}"]; | + | |
- | | + | |
- | kb1 [ label="Keyboard 1", shape="ellipse", style=filled, fillcolor=gray ]; | + | |
- | ms1 [ label="Mouse 1", shape="ellipse", style=filled, fillcolor=gray ]; | + | |
- | label = "required"; | + | |
} | } | ||
| | ||
- | subgraph cluster1 { | + | subgraph cluster1 { label = "right groups"; style="solid"; color="gray"; |
- | style="plaintext"; | + | rg [label = "{<rg1> rg1|<rg2> rg2|<rg3> rg3|<rg-ug1> rg-ug1|<rg-ug2> rg-ug2}"]; |
- | color="invis"; | + | |
- | kb2 [ label="Keyboard 2", shape="ellipse", style=filled, fillcolor=lightgray ]; | + | |
- | ms2 [ label="Mouse 2", shape="ellipse", style=filled, fillcolor=lightgray ]; | + | |
- | label = "optional"; | + | |
} | } | ||
- | subgraph cluster2 { | + | subgraph cluster2 { label = "users"; style="filled, dashed"; color="black"; fillcolor="green"; |
- | style="filled, dashed"; | + | users [label = "{<u1> u1|<u2> u2}"]; |
- | color="black"; | + | |
- | fillcolor="lightgrey" | + | |
- | + | ||
- | usbhub [ label="USB-Hub", style="filled", fillcolor="#e0e0e0" ]; | + | |
- | keyboards [ label="Keyboards", shape="oval", style="filled", fillcolor="#e0e0e0" ]; | + | |
- | mice [ label="Mice", shape="oval", style="filled", fillcolor="#e0e0e0" ]; | + | |
- | | + | |
- | keyboards -> usbhub [ label="USB", dir="both" ]; | + | |
- | mice -> usbhub [ label="USB", dir="both" ]; | + | |
- | + | ||
- | label = "optional USB connection"; | + | |
} | } | ||
| | ||
- | subgraph cluster3 { | + | subgraph cluster3 { label = "user groups"; style="solid"; color="gray"; |
- | style="invis"; | + | ug [label = "{<ug1> ug1|<ug2> ug2}"]; |
- | client1 [ label="Client Contr. 1", style=filled, fillcolor=lightblue ]; | + | |
- | PC1 [ label="PC 1", shape="box3d", style=filled, fillcolor=green ]; | + | |
- | client1 -> PC1 [ label="USB", color="black" ]; | + | |
} | } | ||
- | subgraph cluster4 { | + | rxuy:"r1-u1":w -> users:"u1":w [ arrowhead="open", style="solid" ]; |
- | style="invis"; | + | rxuy:"r2-u1":w -> users:"u1":w [ arrowhead="open", style="solid" ]; |
- | client2 [ label="Client Contr. 2", style=filled, fillcolor=lightblue ]; | + | rxuy:"r1-u2":w -> users:"u2":w [ arrowhead="open", style="solid" ]; |
- | PC2 [ label="PC 2", shape="box3d", style=filled, fillcolor=green ]; | + | rxuy:"r2-u2":w -> users:"u2":w [ arrowhead="open", style="solid" ]; |
- | client2 -> PC2 [ label="USB", color="black" ]; | + | |
- | } | + | |
- | subgraph cluster5 { | + | rxrgy:"r1-rg1":e -> rg:"rg1":e [ arrowhead="open", style="solid" ]; |
- | style="invis"; | + | rxrgy:"r2-rg1":e -> rg:"rg1":e [ arrowhead="open", style="solid" ]; |
- | client3 [ label="Client Contr. 3", style=filled, fillcolor=lightblue ]; | + | rxrgy:"r3-rg1":e -> rg:"rg1":e [ arrowhead="open", style="solid" ]; |
- | PC3 [ label="PC 3", shape="box3d", style=filled, fillcolor=green ]; | + | rxrgy:"r1-rg2":w -> rg:"rg2":w [ arrowhead="open", style="solid" ]; |
- | client3 -> PC3 [ label="USB", color="black" ]; | + | rxrgy:"r1-rg3":w -> rg:"rg3":w [ arrowhead="open", style="solid", label="", color="gray"]; |
- | } | + | |
- | subgraph cluster6 { | + | rxrgugy:"r1-rg-ug1":e -> rg:"rg-ug1":e [ arrowhead="open", style="solid" ]; |
- | style="invis"; | + | rxrgugy:"r2-rg-ug1":e -> rg:"rg-ug1":e [ arrowhead="open", style="solid" ]; |
- | client4 [ label="Client Contr. 4", style=filled, fillcolor=lightblue ]; | + | rxrgugy:"r1-rg-ug2":w -> rg:"rg-ug2":w [ arrowhead="open", style="solid" ]; |
- | PC4 [ label="PC 4", shape="box3d", style=filled, fillcolor=green ]; | + | rxrgugy:"r2-rg-ug2":w -> rg:"rg-ug2":w [ arrowhead="open", style="solid" ]; |
- | client4 -> PC4 [ label="USB", color="black" ]; | + | rxrgugy:"r3-rg-ug2":w -> rg:"rg-ug2":w [ arrowhead="open", style="solid" ]; |
- | } | + | |
- | subgraph cluster7 { | + | rxugy:"r1-ug1":e -> ug:"ug1":e [ arrowhead="open", style="solid" ]; |
- | style="dashed"; | + | rxugy:"r2-ug1":e -> ug:"ug1":e [ arrowhead="open", style="solid" ]; |
- | client6 [ label=" . . . \nClient X", style="solid", color="white" ]; | + | rxugy:"r1-ug12":e -> ug:"ug1":e [ arrowhead="open", style="solid" ]; |
- | PC6 [ label=" . . . \nPC X", style="solid", color="white" ]; | + | rxugy:"r2-ug12":e -> ug:"ug1":e [ arrowhead="open", style="solid" ]; |
- | client6 -> PC6 [ label="USB", color="black" ]; | + | 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" ]; | ||
+ | |||
+ | } | ||
+ | </graphviz> | ||
+ | |||
+ | |||
+ | 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"]; | ||
- | client5 [ label="Client Contr. 5", style="filled", fillcolor="#d5e3ff" ]; | + | r1_rg1 [label = "r1-rg1"]; |
- | PC5 [ label="PC 5", shape="box3d", style="filled", fillcolor="#b6ffc2" ]; | + | r2_rg1 [label = "r2-rg1"]; |
- | client5 -> PC5 [ label="USB", color="black" ]; | + | 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"]; | ||
| | ||
- | { rank="same"; "client6"; "client5"; } | + | r1_ug1 [label = "r1-ug1"]; |
- | { rank="same"; "PC6"; "PC5"; } | + | r2_ug1 [label = "r2-ug1"]; |
- | label = "etc. (expandable)"; | + | 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"]; | ||
} | } | ||
- | MC1 [ label="\rMain Controller", fontsize="14", width="1.70", height="1.00", style="filled", fillcolor="yellow" ]; | + | 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"]; | ||
+ | } | ||
- | { rank="same"; "MC1"; "usbhub"; } | + | 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" ]; | ||
- | kb1 -> MC1 [ arrowhead="open", style="solid", label="PS/2", color="black" ]; | + | rg_ug1 -> ug1 [ arrowhead="open", style="solid" ]; |
- | ms1 -> MC1 [ arrowhead="open", style="solid", label="PS/2", color="black" ]; | + | rg_ug2 -> ug2 [ arrowhead="open", style="solid" ]; |
- | kb2 -> MC1 [ arrowhead="open", style="solid", label="PS/2", color="gray" ]; | + | |
- | ms2 -> MC1 [ arrowhead="open", style="solid", label="PS/2", color="gray" ]; | + | |
| | ||
- | MC1 -> usbhub [ style="dotted", label="USB", dir="both" ]; | + | ug1 -> u1 [ arrowhead="open", style="solid" ]; |
- | + | rg1 -> u1 [ arrowhead="open", style="solid" ]; | |
- | MC1 -> client1 [ label="SPI", color="black" ]; | + | |
- | MC1 -> client2 [ label="SPI", color="black" ]; | + | |
- | MC1 -> client3 [ label="SPI", color="black" ]; | + | |
- | MC1 -> client4 [ label="SPI", color="black" ]; | + | |
- | MC1 -> client5 [ label="SPI", color="black" ]; | + | |
} | } | ||
</graphviz> | </graphviz> | ||
- | |||
- |