Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [ACL] Implementacja
404
post
Post #1





Grupa: Zarejestrowani
Postów: 226
Pomógł: 25
Dołączył: 22.05.2011

Ostrzeżenie: (0%)
-----


Witam forumowiczów (IMG:style_emoticons/default/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? (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
Fifi209
post
Post #2





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

Ostrzeżenie: (0%)
-----


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

Ten post edytował Fifi209 23.04.2012, 16:06:09
Go to the top of the page
+Quote Post
404
post
Post #3





Grupa: Zarejestrowani
Postów: 226
Pomógł: 25
Dołączył: 22.05.2011

Ostrzeżenie: (0%)
-----


Dzięki za odpowiedź (IMG:style_emoticons/default/smile.gif)

Zastanawia mnie tylko, czy jest coś takiego jak dziedziczenia wielokrotne (IMG:style_emoticons/default/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.
Go to the top of the page
+Quote Post

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: 23.08.2025 - 12:11