![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 898 Pomógł: 80 Dołączył: 31.05.2008 Ostrzeżenie: (20%) ![]() ![]() |
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:
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 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 898 Pomógł: 80 Dołączył: 31.05.2008 Ostrzeżenie: (20%) ![]() ![]() |
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 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 9.10.2025 - 19:42 |