Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> System Uprawnień, Pytanie o koncepcję
TomASS
post 28.01.2011, 09:08:24
Post #1





Grupa: Zarejestrowani
Postów: 1 660
Pomógł: 13
Dołączył: 9.06.2004
Skąd: Wrocław i okolice

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


Cześć,

Rozważam wprowadzenie w swojej aplikacji systemu uprawnień.
Mam kilkanaście tabel w których każdy rekord może mieć pola

ID_pole1
ID_pole2
ID_pole3

itd...

każdy użytkownik może mieć zupełnie inny zestaw rekordów.
Myślałem nad tym aby jakoś tworzyć stringa doklejanego do KAŻDEGO zapytania w aplikacji w klauzuli WHERE, tylko pojawiają się problemy:
- jak zarządzać z poziomu administratora takim "srtingiem" - czyli dodawać i odbierać uprawnienia
- w jednej tabeli może np. brakować pola ID_pole2 i wówczas doklejając do tego zapytania "standardowy" string uzyskamy błąd
- jak takie coś trzymać w bazie danych?


Dzięki za podsunięcie pomysłu.


--------------------
Go to the top of the page
+Quote Post
thek
post 28.01.2011, 10:46:51
Post #2





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




System uprawnień powinieneś rozwiązać na kilku poziomach. Ogólnie jest to temat dość obszerny, więc na początek radziłbym byś najlepiej poczytaj ciutkę o ACL, RBAC, DAC i MAC a powinno Ci się wyjaśnić co z czym jeść. Chodzi konkretnie o ustawianie użytkownikom roli, uprawnień grupowych, indywidualnych, do zasobu i tego, czy sami mogą własne reguły dostępu określać. Brzmi skomplikowanie, ale jest proste w zrozumieniu. Gorzej ciut z implementacją, ale jeśli ktoś przemyśli wszystko dobrze, to z reguły nie ma większych problemów.

Co do implementacji, to ona jest najtrudniejsza, ale wystarczy dobrze przemyśleć strukturę osobnej tabeli, która odpowiada wyłącznie za uprawnienia, a sprawa się dość upraszcza.


--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
Go to the top of the page
+Quote Post
Zyx
post 28.01.2011, 12:20:12
Post #3





Grupa: Zarejestrowani
Postów: 952
Pomógł: 154
Dołączył: 20.01.2007
Skąd: /dev/oracle

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


Jeśli chodzi o uprawnienia do robienia czegoś z konkretnym elementem w jakiejś tabeli przechowującej pewne dane, swego czasu wymyśliłem tu coś takiego: mamy sobie pewną klasę, która potrafi operować elementami z tej tabeli. Zamiast narzucać jej sposób przechowywania tak, jak proponujesz, odwracamy wszystko w drugą stronę i mówimy: "trzymaj to sobie, jak chcesz, ale jeśli to ma się do czegoś przydać, to masz zaimplementować interfejs XYZ oraz pamiętać, że potrzebuję takich, a nie innych informacji". Innymi słowy, mówimy czego wymagamy od określonego typu zasobów i pozostawiamy osobie implementującej kod tej klasy na spełnienie naszych warunków. Kod systemu uprawnień będzie po prostu później odpytywać taki obiekt poprzez interfejs XYZ.

Od razu dodam, że koncepcji jeszcze nie testowałem w świecie rzeczywistym, ale jest to w moich planach.

Ten post edytował Zyx 28.01.2011, 12:20:53


--------------------
Specjalista ds. głupich i beznadziejnych, Zyx
Nowości wydawnicze: Open Power Collector 3.0.1.0 | Open Power Autoloader 3.0.3.0
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 12.07.2025 - 07:17