![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 210 Pomógł: 0 Dołączył: 26.05.2008 Ostrzeżenie: (10%) ![]() ![]() |
Witam, tworze stronę w której obok adminstratorów bedą zwykli uzytkownicy.
Zastanawiam sie jak nadać (jak zrobić) uprawnienia. Strona sklada się z 4 działów : Dział1, dzaiał2, dzial3, dział4. Dział4 składa sie także z 4 poddzialów: dział4A, dział4B, dział4C i dział4D Jeśli chodzi o administratorów to powiedzmy admin1 - ma dostęp do wszystkiego, admin 2 ma dostęp do działu 1 i działu 2, admin3 ma dostęp tylko do jednego z działów (powiedzmy dział4). Użytkownicy mają automatycznie dostęp tylko do działu1, natomiast dostępd do pozostalych działów przydziela administrator. I teraz moje pytanie , czy uzytkowników i administratorow umieśćić w jednej tabeli, czy w oddzielnych - jak zrobić tabelę aby można bylo nadawać takie uuprawnienia? Prosze o pomoc |
|
|
![]()
Post
#2
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 590 Pomógł: 40 Dołączył: 11.01.2007 Skąd: Centrum Ostrzeżenie: (0%) ![]() ![]() |
Możesz zrobić to na jednej tabeli ale jak dla mnie byłoby to mało elastyczne rozwiązanie. Ja bym kombinował coś w stylu:
tabela_1 : uzytkownicy tabela_2 : moduly tabela_3 : uprawnienia ... jako że powyższe dwie tabele nie potrzebują opisu to podam tylko to co w trzeciej: id_user | id_modul Jeżeli dla danego użytkownika jest rekord to znaczy że ma dostęp do modułu określonego w id_modul jeżeli rekordu brak dostępu również brak. -------------------- 404
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 1 568 Pomógł: 192 Dołączył: 7.03.2005 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Właśnie robię podobny system.
Przykładowo mam moduły: news, pages, email W tabeli mam zapisane te moduły w tabeli modules: id, nazwamodulu, nazwafolderu, grupydostepu (1,2,3) Wchodząc do jakiegoś modułu jeżeli została przypisane tylko jedynka, do admina będą mieli dostęp tylko admini, jeżeli 1,2 tylko admini i moderatorzy itd. Może jeszcze ktoś inne ci coś lepszego zaproponuje. No i cienkiego sposób też jest dobry, albo i bardziej elastyczny ![]() Ten post edytował potreb 2.10.2008, 09:12:56 -------------------- |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 210 Pomógł: 0 Dołączył: 26.05.2008 Ostrzeżenie: (10%) ![]() ![]() |
a może ktoś ma jakiś przykład... ?
tabela_1 : uzytkownicy tabela_2 : moduly tabela_3 : uprawnienia ... jako że powyższe dwie tabele nie potrzebują opisu to podam tylko to co w trzeciej: id_user | id_modul Jeżeli dla danego użytkownika jest rekord to znaczy że ma dostęp do modułu określonego w id_modul jeżeli rekordu brak dostępu również brak. A co w momecnie jak dany uzytkownik będzie miał dostęp do kilku modułów? |
|
|
![]()
Post
#5
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 590 Pomógł: 40 Dołączył: 11.01.2007 Skąd: Centrum Ostrzeżenie: (0%) ![]() ![]() |
a może ktoś ma jakiś przykład... ? A co w momecnie jak dany uzytkownik będzie miał dostęp do kilku modułów? zakładając że admin_1 ma id_user=1 id_user | id_modul 1 | 1 1 | 2 itd. -------------------- 404
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 210 Pomógł: 0 Dołączył: 26.05.2008 Ostrzeżenie: (10%) ![]() ![]() |
masz jakiś przykład? byłbym bardzo wdzięczny
|
|
|
![]()
Post
#7
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 590 Pomógł: 40 Dołączył: 11.01.2007 Skąd: Centrum Ostrzeżenie: (0%) ![]() ![]() |
masz jakiś przykład? byłbym bardzo wdzięczny Nie do końca wiem jakiego przykładu oczekujesz ? Podałem Ci z jakiej struktury tabel bym skorzystał oraz jak są wpisy do tabeli uprawnienia robione. Teraz od Ciebie zależy jak to wykorzystasz i jak zaimplementujesz. -------------------- 404
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 210 Pomógł: 0 Dołączył: 26.05.2008 Ostrzeżenie: (10%) ![]() ![]() |
czyli podsumowywując:
mamy tak: DZIAŁ1 DZIAŁ2 DZIAŁ3 DZIAŁ4 ----Dział4a ----Dział4b ----dział4c ----dział4d w modułach robię sobie takie same nazwy (przykładowo) jak te wyżej, np dział1_odczyt dział1_zapis itd czy poprawne bedzie jesli do modułów dodam moduł administratorzy, tak żeby uzytkownik , który nim nie jest w momencie kliknięcia na link do panleu mogl otrzymać informacje, że nim nie jest i nie ma dostępu Widzisz to tak mniej więcej? |
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 1 568 Pomógł: 192 Dołączył: 7.03.2005 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Prosty przykład, takie naprowadzenie, aczkolwiek zbudowanie takiego systemu wymaga trochę nakładu pracy. Proponuje najpierw stworzyć tabele a później tworzyć skrypt. Co do twojego przykładu to jest okey, napisz skrypt i jakoś ci pomożemy. Ten post edytował potreb 2.10.2008, 09:53:11 -------------------- |
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 1 590 Pomógł: 185 Dołączył: 19.04.2006 Skąd: Gdańsk Ostrzeżenie: (0%) ![]() ![]() |
Taki system uprawnień... ja mam tak:
id_zasobu||user_login||flaga Jest jeszcze problem drzewa - gdy mam tak jak w powyższym: Cytat DZIAŁ1 DZIAŁ2 DZIAŁ3 DZIAŁ4 ----Dział4a ----Dział4b ----dział4c ----dział4d - to przykładowo: dział4||misiek||0 - zabroniony dostęp do działu4 i wszystkich poniżej dział4||misiek||1 - dostęp do działu 4, ale nie do działów niżej dział4||misiek||2 - dostęp do działu 4 i działów niżej dział4||misiek||4 - dostęp do działów niżej i edycja działu 4 - można też łączyć: dział4||misiek||2 dział4b||misiek||4 dział4c||misiek||0 - dostęp do działu 4 i poddziałów, jednak zabroniony dostęp do działu 4c plus edycja działu 4b - są problemy typu: dział4||misiek||0 dział4a||misiek||4 - do działu wyżej dostęp zabroniony, ale do tego niżej nie Nie wiem czy dobrze robię, ale nic lepszego jak na razie nie wymyśliłem ![]() |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 210 Pomógł: 0 Dołączył: 26.05.2008 Ostrzeżenie: (10%) ![]() ![]() |
Nadal męczę się nad uprawnieniami...
Ale ostatnio wymysliłem coś takiego, że można np w tabeli użytkoników dodać pola odpowiedzialne za dostęp do określonych działów, ich edycji itp... Co o tym myslicie? TABELA: USERS user_id imie nazwisko nick dzial1_viev dzial1_edit dzial2_viev dzial2_edit ... Standardowo dostęp do dzialow bedzie zablokowany (Wartośc domyślna 0 ), lecz można zmienić mu uprawnienia w panelu (1) Co sądzicie o takim ukladzie>? |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 890 Pomógł: 65 Dołączył: 13.11.2005 Skąd: Olsztyn Ostrzeżenie: (0%) ![]() ![]() |
A ja proponuję ACL z wykorzystaniem biblioteki Zend'a: http://framework.zend.com/manual/en/zend.acl.html
Dokumentacja precyzyjnie wyjaśnia temat, co do przechowywania - obiekt zend_acl serializujemy i wrzucamy do bazy ![]() |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 24.07.2025 - 15:30 |