Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> ACL, czyli jak powiedzieć "nie wolno"
batman
post
Post #1





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




Mam małą zagwozdkę. W różnych systemach, różnie to rozwiązywałem, jednak chciałbym poznać wasze zdanie na ten temat.
Załóżmy taką sytuację. Jest serwis, w którym istnieje kilka grup użytkowników oraz różne zasoby. Oczywistym jest, że różne grupy mają różny poziom dostępu. Jeśli jakiś użytkownik, który nie ma uprawnień, próbuje dostać się do pewnego zasobu, otrzymuje komunikat błędu. Jaki powinien być ten komunikat?
1. 404 - nie ma takiej strony?
2. Wyświetlić stronę z informacją o braku dostępu do zasobu?
3. Wyświetlić formularz logowania?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
jastu
post
Post #2





Grupa: Zarejestrowani
Postów: 382
Pomógł: 0
Dołączył: 29.11.2005
Skąd: :jestem();

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


W kontrollerze

  1. <?php
  2. try
  3. {
  4. // sprawdzane zasoby
  5. $object = new Object();
  6.  
  7. // sprawdzenie uprawnień odczytu do obiektu, $this->client to obiekt bieżącego użytkownika
  8. $this->client->read($object,true);
  9.  
  10. // dalszy kod tzn. reszta danych, logiki
  11.  
  12. }
  13. catch(AccesExcepton $e)
  14. {
  15. // kod obsługi braku dostępu
  16. }
  17. ?>


w szablonie
  1. <?php
  2. if($client->read($object)) 
  3. {
  4. // wyświetl przycisk
  5. }
  6. ?>


Zapis
Client::read($object, $throw = false)
to metoda, w której drugi parametr decyduje czy wygenerować wyjątek - czy zwrócić false/true
($client to obiekt użytkownika)

Jeżeli ktoś ma lepszy sposób, chętnie poczytam

...jeszcze coś mi do głowy przyszło : można napisać klase do tworzenia przycisków (linki i kontrola uprawnień byłaby w jednym miejscu)
  1. <?php
  2. $object->deleteButton($user);
  3. ?>

Klasa ta gdzieś była by dziedziczona np. model ->klasa_linki_uprawnienia -> klasa_właściwa ($object)

luźna myśl.....

Ten post edytował jastu 24.04.2008, 13:03:19
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: 26.12.2025 - 00:33