Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Ograniczenie możliwości niektórym administratorom.
Forum PHP.pl > Forum > PHP
vieri_pl
Mam taki problem, jestem w trakcie tworzenia panelu administracyjnego do mojej strony. I za pomoca panelu administracyjnego dodawałbym recenzje, poradniki, newsy, pliki do download etc.

Czy jest sposób na to aby każdy użytkownik (administrator) mógł robić tylko wyznaczone przezemnie czynności. chodzi mi o ustawianie uprawnien dla adminów.
Np. Lol ma mozliwość dodawania newsów ale reszta jest dla niego nie dostępna, a
lolek ma możliwość dodawania newsów i recenzji czy takie coś jest mozliwe do napisania? A jak tak to jak?

PS: Najlepiej aby wszystko opierało sięna bazie danych, ale i bez tego byłoby dobre....
czachor
Nadajesz każdemu adminowi odpowiednie uprawnienia (np. admin 1 ma "2", drugi - "4"...). Potem w skrypcie sprawdzasz, czy admin ma odpowienie prawa... Mniej więcej:
  1. <?php
  2. if ($admin_privileges == 3)
  3. {
  4.  dodaj_newsa();
  5. }
  6. else
  7. {
  8. nie_masz_uprawnien('idź sobie');
  9. };
  10. ?>
vieri_pl
Wielkie dzięki! Czyli w bazie danych muszę stworzyć osobną tablicę do wpisywania uprawnień??
nospor
Cytat
Czyli w bazie danych muszę stworzyć osobną tablicę do wpisywania uprawnień?
Niekoniecznie.
Dorób dla admina dodatkowe pole w tabeli typu varchar. Do pola tego wpisuj uprawnienia gostka oddzielone średnikiem, np:
1;3;5

Odczytując uzytkownika odczytuj też to pole. Zamien tekst np. na tablicę:
  1. <?php
  2.  
  3. $rigths = explode(';', '1;3;5');
  4.  
  5. ?>


a sprawdzasz czy ma prawo:
  1. <?php
  2.  
  3. if (in_array('1', $rights))
  4.    echo &#092;"cos\";
  5. else
  6.    echo &#092;"nie masz prawa\"
  7.  
  8. ?>


Nie musisz tego pola zamieniac na tablicę. Możesz też sprawdzać wyraazeniem regularnym. Ja jednak jakoś wole tablicę
zombie
możesz wyliczać uprawinienia w systemie dwójkowym i nie będzie potrzebna dodatkowa tabela, tylko jedna kolumna. To chyba najoszczędniejsze wyjście, bo równie dobrze uprwnienia możesz zapisać zero-jedynkami, np.: 0101100101
vieri_pl
Rozumiem, ale jakby miał wtedy wyglądać formularz logowania oraz kod ograniczający dostęp??
nospor
Formualrz logowania ma wyglądać normalnie. PRzecież podczas logowania nie bedziesz sobie sam nadawal praw.
Musi stworzyć skrypcik, do którego bedzie mial dostęp np. super administrator i on bedzie nadawal prawa innym. A wygladać to bedzie tak, że gostek wybiera uzytkownika, wyswietlają mu się checkboxy ze wszystkimi prawami i zaznaczane są prawa, które user może posiadać.
A jak nie chce ci sie robic takiego formualrza, to wprowadzaj recznie do bazy uprawnienia biggrin.gif

Co do kodu ograniczającego dostęp to podalem ci przyklad w moim poprzednim poscie. Chyba ze chcesz uzywać metody zombie, to niech on ci poda (albo najlepiej sam pomysl).
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.