Přístupová práva: Porovnání verzí
Řádek 47: | Řádek 47: | ||
'''hidden''' - 0 => sekce je viditelná, 1 => je skrytá | '''hidden''' - 0 => sekce je viditelná, 1 => je skrytá | ||
+ | |||
+ | ===acl_seq=== | ||
+ | |||
+ | Tabulka, jejíž jediným účelem je zapamatování si aktuálně posledního id tabulky acl. | ||
+ | |||
+ | PhpGacl (bůhví proč) nepoužívá u tabulek auto increment. | ||
+ | |||
+ | Obsahuje sloupec id. | ||
+ | |||
+ | '''id''' - poslední id v tabulce acl | ||
===aco_map=== | ===aco_map=== |
Verze z 18. 7. 2009, 17:43
Obsah
Popis implementace správy přístupových práv ve Freenetisu
Popis SQL tabulek knihovny PhpGacl
V PhpGaclu je všechno postavené na objektech 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í jednotlivé přístupová pravidla.
Obsahuje sloupce id, section_value, allow, enabled, return_value, note, updated_date.
id - identifikátor, důležitý pro propojení s ACO, ARO a AXO
section_value - název sekce, kam toto pravidlo patří
allow - 1 => pravidlo operaci povoluje, 0 => pravidlo operaci zakazuje
enabled - 1 => pravidlo je povolené, 0 => pravidlo je zakázané
return_value - zatím netuším
note - komentář, popisující funkci pravidla (např. Administrátoři mohouu dělat vše)
updated_date - timestamp poslednín aktualizace pravidla
acl_sections
Tabulka definující jednotlivé sekce pravidel.
Defaultně jsou v PhpGaclu dvě sekce - System a User, Freenetis ale používá jen User.
Obsahuje sloupce id, value, order_value, name a hidden.
id - identifikátor, víceméně zbytečný, protože pravidla se do sekcí přiřazují pomocí hodnoty (value)
value - krátký název bez mezer, používá se pro přiřazení jednotlivých acl do sekcí
order_value - zatím netuším
name - dlouhý název, popis
hidden - 0 => sekce je viditelná, 1 => je skrytá
acl_seq
Tabulka, jejíž jediným účelem je zapamatování si aktuálně posledního id tabulky acl.
PhpGacl (bůhví proč) nepoužívá u tabulek auto increment.
Obsahuje sloupec id.
id - poslední id v tabulce acl
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.
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