Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: System uprawnień dla administratorów
Forum PHP.pl > Forum > PHP > Object-oriented programming
Damiankossek
Witam, jestem w trakcie pisania swojego CMSa no i mam mały problem ponieważ stanąłem na systemie uprawnień, nie mam pojęcia jak On mógłby wyglądać żeby w przyszłości nie sprawiał problemu, zależy mi na tym aby system ten sprawdzał czy np. użytkownik ma dostęp do danej metody.

Ogólnie napisałem jakiś archaiczny skrypt który łączy się z SQLem i sprawdza czy użytkownik ma dostęp do danej metody, ale w przypadku gdy kiedyś dopiszę nowe `pluginy` to sprawi mi to mały problem. Bo np. zależy mi na tym aby w formularzu dodawania / edycji użytkownika w momencie dodania nowego pluginu automatycznie dodał mi się ten właśnie nowy `plugin`.

Po głowie chodzi mi napisanie jakiejś tabeli w której byłaby nazwa modułu, nazwa metody itp. pobierałoby się ją i rozbijało na formularz, tutaj bym miał problem z dodawaniem nowego pola w formularzu z głowy. Ale jak napisać resztę ? Rozbudować mój `skrypt` czy jest może jakaś prostsza / przyjemniejsza metoda wykonania takiego systemu ?
Mephistofeles
ACL - Access Control List
Damiankossek
A to mam jeszcze takie pytanie:

  1. class Klasa
  2. {
  3. public $auth = array('admin');
  4.  
  5. public function __construct()
  6. {
  7. }
  8.  
  9. public function render()
  10. {
  11. }
  12. }


Czy mogę w public $auth przypisać inną wartość ? tzn. pobrać ją np. z innej funkcji, klasy ? Zależałoby mi na tym ponieważ wtedy mógłbym sobie `dynamicznie` tworzyć uprawnienia, a tak muszę edytować każdy kontroler
hind
A kto Ci zabroni przypisywać inną wartość snitch.gif ?... ale zamiast trzymać danych w kontrolerze to lepiej mieć obiekt sprawdzający uprawnienia, i np. pobierając dane z konrtolera o wybranej akcji dawać odpowiedni zestaw uprawnień.
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.