Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [ZF] Zend_Auth, dwa typy użytkowników
taro
post 21.01.2011, 18:53:06
Post #1





Grupa: Zarejestrowani
Postów: 58
Pomógł: 5
Dołączył: 12.12.2008

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


Witam.

Mam taki problem.

Robię logowanie za pomocą Zend_Auth. W systemie mam jednak dwa typy użytkoników.

W jaki sposób rozdzielić te dwa typy korzystając z Zend_Auth.

Na przykład chciałbym, aby dane akcje mogły być uruchamiane tylko przez jeden typ użytkowników, zaś inne nie.

Dodam, że będą dwa oddzielne logowania, dwie oddzielne tabele itp.
Czy pozostaje mi tylko Zend_Acl, czy można to zrobić jakoś inaczej?

Bo teraz
$auth = Zend_Auth::getInstance();
if($auth->hasIdentity()) {
$this->_redirect('/costam/');
}

ładnie działa, ale jak będę miał dwa typy użytkowników to jak to sprawdzić, połączyć itp?

Dodam, że będą tylko dwa typy użytkowników + admin. Admin będzie miał w ogóle inny panel i nie potrzebuje dostępu do tych dwóch typów użytkownika. Każdy z użytkowników też będzie miał inny panel, zatem zastanawiam się czy trzeba bawić się w Zend_Acl, czy jest jakieś prostsze rozwiązanie?

Ten post edytował taro 21.01.2011, 19:17:07
Go to the top of the page
+Quote Post
Pilsener
post 21.01.2011, 22:17:55
Post #2





Grupa: Zarejestrowani
Postów: 1 590
Pomógł: 185
Dołączył: 19.04.2006
Skąd: Gdańsk

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


Jeśli nie musisz przypisywać określonych zasobów systemowych danej roli to nie musisz korzystać z ACL, wystarczy sprawdzić typ użytkownika w sesji. Oczywiście warto zadać sobie pytanie, czy system uprawnień będzie kiedyś musiał zostać rozbudowany.
Go to the top of the page
+Quote Post
zend
post 15.02.2011, 01:10:38
Post #3





Grupa: Zarejestrowani
Postów: 580
Pomógł: 85
Dołączył: 25.03.2010
Skąd: Skrzyszów :)

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


Zend_Acl jest proste i przyjemne, jeśli z niego skorzystasz to szybko docenisz jego zalety. Kod który możesz użyć:
Kod
//autoryzacja
$auth = Zend_Auth::getInstance();
$result = $auth -> authenticate($adapter);

if($result -> getCode() != Zend_Auth_Result::SUCCESS)
{
    $this -> _msg($result -> getMessages() , 'error');
    return;
}
$storage = $auth -> getStorage();
$storage -> clear();
$storage -> write(new Users_Auth_Result($adapter -> getResultRowObject(null , 'password')));


Stwórz obiekt Users_Auth_Result i w nim metodę getRole(), używasz tego tak:
Kod
if($auth -> hasIdentity())
{
      $role = $auth -> getIdentity() -> getRole();
      //spr w Zend_Acl czy dana rola ma dostęp do zasobu
}
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: 13.08.2025 - 22:31