![]() |
![]() |
![]()
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) |
|
|
![]() |
![]()
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 |
|
|
![]()
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. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 12:11 |