Přístupová práva: Porovnání verzí
m |
|||
Řádek 3: | Řádek 3: | ||
==Popis SQL tabulek knihovny PhpGacl== | ==Popis SQL tabulek knihovny PhpGacl== | ||
− | + | ||
+ | V PhpGaclu je všechno postavené na ACO, ARO a AXO. | ||
+ | |||
+ | ACO - objekty operací | ||
+ | ARO - objekty nebo skupiny objektů, které chtějí jednotlivé operace (ACO) vykonávat | ||
+ | AXO - objekty nebo skupiny objektů, nad kterými chtějí jednotlivé ARO nějakou operaci (ACO) | ||
===acl=== | ===acl=== |
Verze z 18. 7. 2009, 17:02
Obsah
Popis implementace správy přístupových práv ve Freenetisu
Popis SQL tabulek knihovny PhpGacl
V PhpGaclu je všechno postavené na ACO, ARO a AXO.
ACO - objekty operací ARO - objekty nebo skupiny objektů, které chtějí jednotlivé operace (ACO) vykonávat AXO - objekty nebo skupiny objektů, nad kterými chtějí jednotlivé ARO nějakou operaci (ACO)
acl
Tabulka, definující přístupová práva.
Obsahuje pouze sloupec id a sloupce allow a enabled. Ke každému pravidlu jsou objekty ACO/ARO/AXO přidělovány pomocí tabulek aro_groups_map, axo_groups_map a aco_map
aro_groups_map
přiřazuje k jednotlivým ACL pravidlům skupiny uživatelů.
Příklad:
Vytvoříme pravidlo "Zájemci o členství a řádní členové mohou dělat XYZ".
Toto pravidlo bude v tabulce "acl" reprezentováno novým řádek s id=27, ve kterém je uloženo hodnota "allow";
Pokud "řádní členové" mají id=22 a zájemci o členství id=23, pak v tabulce aro_groups_map při vytvoření tohoto pravidla přibudou 2 nové řádky:
acl_id | group_id
27 | 22
27 | 23
axo_groups_map
Podobné jako aro_groups_map, ale pro AXO
aco_map
Podobné jako aro_groups_map, ale pro ACO. Protože ACO nemá stromovou strukturu skupin, neodkazuje tato tabulka na skupiny, ale přímo na jednotlivé objekty ACO.
Proto každý řádek kromě acl_id obsahuje položky section_value a value, identifikující dané ACO.