Přístupová práva: Porovnání verzí

Z Freenetis Wiki
Přejít na: navigace, hledání
(Nová stránka: ==Popis SQL tabulek knihovny phpGacl== aneb co v manuálu phpgacl nenajdete: ===acl=== Tabulka, definující přístupová práva. Obsahuje pouze sloupec id a sloupce allow a en...)
 
m (Quimi přesunul stránku Přístupová práva na Přístupová práva bez založení přesměrování)
 
(Není zobrazeno 32 mezilehlých verzí od 5 dalších uživatelů.)
Řádek 1: Řádek 1:
==Popis SQL tabulek knihovny phpGacl==
+
[[en:Access rights]]
aneb co v manuálu phpgacl nenajdete:
+
[[ru: Права доступа]]
 +
 
 +
==Popis implementace správy přístupových práv ve FreenetISu==
 +
 
 +
Aktuální přístupová práva pro FreenetIS jsou založena na PHP GACL. Samotná knihodna byla odstraněna, ale její sytém tabulek byl zachován.
 +
 
 +
 
 +
==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===
 
===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.
  
Tabulka, definující přístupová práva.
+
Obsahuje sloupec id.
  
Obsahuje pouze sloupec id a sloupce allow a enabled. Ke každému pravidlu jsou objekty
+
'''id''' - poslední id v tabulce acl
  
ACO/ARO/AXO přidělovány pomocí tabulek aro_groups_map, axo_groups_map a aco_map
+
===aco===
 +
Tabulka definující jednotlivé objekty ACO. Ve FreenetISu jsou buď ACO pro vykreslování menu (sekce menu) a ACO pro obecné operace (sekce freenetis) - view_all, view_own, edit_all, edit_own, delete_all, delete_own, new_all, new_own, confirm_all, confirm_own, ... které se používají '''výhradně''' s AXO objekty.
  
 +
Obsahuje sloupce id, section_value, value, order_value, name a hidden.
  
 +
'''id''' - identifikátor, nedůležitý (pro propojení s acl v tabulce aco_map se používá value)
  
===aro_groups_map===
+
'''section_value''' - jméno sekce, definované v aco_sections
  
přiřazuje k jednotlivým ACL pravidlům skupiny uživatelů.
+
'''value''' - krátký název bez mezer, používá se pro přiřazení jednotlivých aco do sekcí a pro propojení s jednotlivými acl pravidly v aco_map
  
Příklad:
+
'''order_value''' - zatím netuším
  
Vytvoříme pravidlo "Zájemci o členství a řádní členové mohou dělat XYZ".
+
'''name''' - dlouhý název, popis
  
 +
'''hidden''' - 0 => sekce je viditelná, 1 => je skrytá
  
 +
===aco_map===
  
Toto pravidlo dostane v tabulce "acl" id=27;
+
Propojuje ACO objekty s jednotlivými acl pravidly. ACO jako jediné (z trojice ACO, ARO a AXO) nemá možnost shhlukování do skupin, proto není žádná další dabulka aco_groups_map.
  
 +
Obsahuje sloupce acl_id, section_value a value.
  
 +
'''acl_id''' -
 +
 +
'''section_value''' -
  
Pokud "řádní členové" mají id=22 a zájemci o členství id=23, pak v tabulce
+
'''value''' -
  
aro_groups_map při vytvoření tohoto pravidla přibudou 2 nové řádky:
+
===aco_sections===
  
 +
Sekce pro jednotlivé ACO, FreenetIS používá pouze dvě: menu - pro ACO objekty týkající se vykreslování menu, a pak freenetis - pro definici obecných ACO operací (zobrazení, editování, mazání a potvrzování).
  
 +
Obsahuje sloupce id, value, order_value, name a hidden.
  
acl_id | group_id
+
'''id''' - identifikátor sekce (není pro nic potřeba)
  
-----------------
+
'''value''' - samotný název sekce (u nás menu a freenetis)
  
27   | 22
+
'''order_value''' - zatím netuším
  
27   | 23
+
'''name''' - popis sekce
  
 +
'''hidden''' - 0 => sekce je viditelná, 1 => je skrytá
  
 +
===aro_groups_map===
  
===axo_groups_map===
+
přiřazuje k jednotlivým ACL pravidlům skupiny uživatelů.
  
Podobné jako aro_groups_map, ale pro AXO
+
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";
  
===aco_map===
+
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:
  
Podobné jako aro_groups_map, ale pro ACO. Protože ACO nemá stromovou strukturu skupin,
+
acl_id | group_id
 +
-----------------
 +
27    | 22
  
neodkazuje tato tabulka na skupiny, ale přímo na jednotlivé objekty ACO.
+
27    | 23
  
Proto každý řádek kromě acl_id obsahuje položky section_value a value, identifikující
+
===axo_groups_map===
  
dané ACO.
+
Podobné jako aro_groups_map, ale pro AXO

Aktuální verze z 31. 1. 2018, 13:57


Popis implementace správy přístupových práv ve FreenetISu

Aktuální přístupová práva pro FreenetIS jsou založena na PHP GACL. Samotná knihodna byla odstraněna, ale její sytém tabulek byl zachován.


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

Tabulka definující jednotlivé objekty ACO. Ve FreenetISu jsou buď ACO pro vykreslování menu (sekce menu) a ACO pro obecné operace (sekce freenetis) - view_all, view_own, edit_all, edit_own, delete_all, delete_own, new_all, new_own, confirm_all, confirm_own, ... které se používají výhradně s AXO objekty.

Obsahuje sloupce id, section_value, value, order_value, name a hidden.

id - identifikátor, nedůležitý (pro propojení s acl v tabulce aco_map se používá value)

section_value - jméno sekce, definované v aco_sections

value - krátký název bez mezer, používá se pro přiřazení jednotlivých aco do sekcí a pro propojení s jednotlivými acl pravidly v aco_map

order_value - zatím netuším

name - dlouhý název, popis

hidden - 0 => sekce je viditelná, 1 => je skrytá

aco_map

Propojuje ACO objekty s jednotlivými acl pravidly. ACO jako jediné (z trojice ACO, ARO a AXO) nemá možnost shhlukování do skupin, proto není žádná další dabulka aco_groups_map.

Obsahuje sloupce acl_id, section_value a value.

acl_id -

section_value -

value -

aco_sections

Sekce pro jednotlivé ACO, FreenetIS používá pouze dvě: menu - pro ACO objekty týkající se vykreslování menu, a pak freenetis - pro definici obecných ACO operací (zobrazení, editování, mazání a potvrzování).

Obsahuje sloupce id, value, order_value, name a hidden.

id - identifikátor sekce (není pro nic potřeba)

value - samotný název sekce (u nás menu a freenetis)

order_value - zatím netuším

name - popis sekce

hidden - 0 => sekce je viditelná, 1 => je skrytá

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