Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Rangi, Bardziej skomplikowany
-Wieviór-
post
Post #1





Goście







Do tej pory pisząc przeróżne panele administracyjne używałem prostego sposobu z numerkami, szło w górę i po prostu zwiększały się uprawnienia.

Teraz szukam czegoś bardziej skomplikowanego. Żeby łatwo można było wybrać, co dany użytkownik może robić. W php-Fusion widziałem w tabeli users, w polu uprawnień mniej więcej taki zapis:

Kod
A.B.C.D.H.L.K.W.Z


Domyślam, się że każda literka po prostu odpowiada jakiemuś blokowi akcji w adminie. Pytanie moje natomiast polega na tym, czy to dobry sposób na stosowanie przywilejów i jak to z bazy dobrze wyciągać dla użytkownika.

Ten post edytował Wieviór 14.08.2006, 19:49:18
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
batman
post
Post #2





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




A nie prościej byłoby zastosować takie coś?
  1. <?php
  2. define('MANAGE_USERS',1);
  3. define('MANAGE_DOCS',2);
  4. define('MANAGE_IMG',4);
  5. define('MANAGE_MAIL',8);
  6. /* itd */
  7. ?>


W tabeli, np tabuser masz następujące pola:
- iduser,
- slogin,
- nrules

W pole nrules wpisujesz sumę wartości dziesiętnych zdefiniowanych stałych. Np chcesz by użytkownik jan.kowalski mógł zarządzać dokumentami i pocztą. Przypisujesz mu wartość 10 (2 + 8). By sprawdzić jakie prawa przysługują danemu użytkownikowi, robisz cos takiego:

  1. <?php
  2. // $row - array z info o uzytkowniku, wyciagniety z bazy
  3. if($row['nrules'] & MANAGE_USERS) { /* ... */}
  4. if($row['nrules'] & MANAGE_DOCS) { /* ... */}
  5. // itd
  6. ?>


Sposób jest dobry przy niewielkiej ilości zdefiniowanych stałych. Wystarczy jednak trochę pokombinować, a da się z niego wycisnąć znacznie więcej (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post

Posty w temacie


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: 17.10.2025 - 09:26