Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [ACL] Implementacja
Forum PHP.pl > Forum > PHP
404
Witam forumowiczów smile.gif

Zastanawiam się, którą implementację wybrać...
1. Definiujemy grupy admin i użytkownik. Każdej grupie przypisujemy zasoby, ale warunek jest taki, że admin musi mieć też uprawnienia użytkownika. Będzie to wyglądało mniej więcej tak:
Zasoby:
Kod
www/
www/contact
www/user/profile
www/logs/view

Grupy:
użytkownik
admin

Role:
użytkownik:
Kod
www/
www/contact
www/user/profile

admin:
Kod
www/
www/contact
www/user/profile
www/logs/view

Ten sposób jest strasznie zasobożerny ponieważ w bazie, w tabeli ról dużo zasobów będzie się powtarzać/pokrywać oraz użytkownikowi będzie można przypisać tylko jedną grupę. Przykładowo, jeżeli chcielibyśmy stworzyć sobie grupę moderator-bonus, która by miała dostęp do jednego zasobu więcej niż standardowy mod to musielibyśmy przypisać tej grupie prawa użytkownika, prawa moderatora i dopiero potem dodać ten jeden, bonusowy zasób.

2. Drugi sposób jest bardziej oszczędny.
Zasoby:
Kod
www/
www/contact
www/user/profile
www/logs/view

Grupy:
użytkownik
admin

Role:
użytkownik:
Kod
www/
www/contact
www/user/profile

admin:
Kod
www/logs/view

Tym razem w tabela ról będzie znacznie mniejsza, dodanie jednego, bonusowego zasobu będzie sprowadzało się do utworzenia grupy moderator-bonus i przypisaniu jej tylko jednego zasobu, a użytkownikowi będzie można przypisać kilka grup.
Problem sprowadza się tutaj do sposobu przechowywania tego w bazie. Tabela user_acl_groups odpada ponieważ wielkością dorównywałaby (czasami przewyższała) ilość użytkowników, czyli to tak jakbyśmy mieli dwie tabele do użytkowników. Myślałem o czymś takim:
Kod
user_id | user_password  | ... | user_acl_group
1 | test    | ... | 1;2;3;4
2 | test2  | ... |1
3 | jurek | ... | 2;6;1

...czyli o utworzeniu kolumny, która przechowywałaby id grup (nie grupy!).
Uff, co o tym myślicie? smile.gif
Fifi209
ACL z tego co pamiętam działa na zasadzie dziedziczenia

Czyli masz grupy np. :

user
mod
admin

Gdzie user ma dostęp powiedzmy do:

www/
www/contact

Mod ma dostęp do tego co user + coś jeszcze
www/user/profile

Admin ma dostęp do tego co mod + coś jeszcze
www/logs/view

A konkretny użytkownik, powinien być przypisany do grupy, powinna być możliwość przypisania konkretnemu użytkownikowi dodatkowego uprawienia
np. użytkownik Fiif209, jest zaufanym moderatorem, dajmy mu wgląd do logów ale nie do zmiany np. konfiguracji (to taki supermod jak pisałeś)

@edit

łap linka http://phppl.www1.ez.no/wortal/artykuly/pr...l_jak_korzystac
404
Dzięki za odpowiedź smile.gif

Zastanawia mnie tylko, czy jest coś takiego jak dziedziczenia wielokrotne smile.gif Co, jeżeli będę chciał utworzyć dość nietypową grupę, która będzie dziedziczyła po moderatorze, redaktorze i np. fotografie? Wtedy z tego zrobią się takie podgrupy.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.