Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> ACL - własny, nie zendowski
cojack
post
Post #1





Grupa: Zarejestrowani
Postów: 898
Pomógł: 80
Dołączył: 31.05.2008

Ostrzeżenie: (20%)
X----


Witam,
Potrzebuje do swojego cms'a napisać własny ACL i teraz się bije z myślami jak to zrobić, nie podoba mi się w zendowskim acl serializacja danych, nigdy jej nie używałem i używać nie będę (chyba że będę jakoś zmuszony w co wątpię) ale nie teraz o tym mowa.

Więc wymyśliłem sobie że będę jechał na bitach, np:
  1. $a = 2;
  2. $b = 4;
  3. $c = 8;
  4. $d = $a + $b;
  5. if ( $d & $c )
  6. echo 'Go go go masterczułki';
  7. else
  8. echo 'No nie 4hp';


I teraz czy robić to na grupy + osobno dla usera, czy tylko na grupy? Wiadomo tylko na grupy prościej, a na jedno i drugie, większe możliwości.

Macie jakieś inne pomysły?

Ten post edytował cojack 9.09.2009, 08:41:44
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
cojack
post
Post #2





Grupa: Zarejestrowani
Postów: 898
Pomógł: 80
Dołączył: 31.05.2008

Ostrzeżenie: (20%)
X----


Ale gościu nakombinował, strasznie... nie podoba mi się ten sposób dostępu do modułów. Wystarczy że sobie zmienisz nazwy controlerow a router jest na tyle ubogi że nie możesz w nim definiować dla controlera innej nazwy i dupa, leżysz i kwiczysz, mało flexible.

A poza tym, struktura drzewiasta, mam złe wspomnienia z tym, lepiej to rozbić na np:

Module
- id ++
- name string

Action
- id ++
- module_id int
- name string // nie unique!

Oraz

User
- id ++

Group
- id ++
- name string
- value int

UserToGroup
- user_id int
- group_id int

Rule
- id ++
- module_id
- action_id
- value

I np jeżeli mamy np 3 grupy:

User, Editors, Admin, każda z nich ma inne value w Group, value jest sumą kolejnych 2^n poziomów, więc jeżeli mamy np moduł articles a w nim akcje index, list, edit, delete, show, to te akcje mają wartości: 2, 4, 8, 16, 32, jeżeli chcemy by nasz User mógł przeglądać artykuły nasza grupa będzie miała wartość: 2+4+32 czyli 38, i aby sprawdzić czy User z danej grupy może patrzeć tam gdzie chce sprawdzamy value grupy z value rule, nie ma możliwości by np do jednej grupy dopisać dwa razy index, index. Bo wtedy miałby dostęp do list. A że na raz sprawdzamy tylko jedną akcję i tylko jeden moduł, nie będzie potrzeby stosowania podwójnego && (IMG:style_emoticons/default/winksmiley.jpg)

Ten post edytował cojack 9.09.2009, 12:31:47
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 9.10.2025 - 19:42