Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [ZendFramework] uwierzytelnianie z dodatkowym parametrem, Zend_auth
czachor
post
Post #1





Grupa: Zarejestrowani
Postów: 897
Pomógł: 40
Dołączył: 16.12.2003
Skąd: Warszawa

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


Witam,

kombinuję dzisiaj z Zend_Auth i coś mi nie idzie... Chciałbym, żeby oprócz standardowego sprawdzania nazwy i hasła w bazie spełniony był również warunek 'active = TRUE'.
Mam kod z manuala, ale nie działa, logują się nieaktywowani użytkownicy...

Niżej mój kod. Wszystko jest ok, tylko zupełnie ignorowany jest warunek... Będę wdzięczny za pomoc.
  1. <?php
  2. class LoginController extends Main_Controller_Action
  3. {
  4.    function indexAction()
  5.    {
  6.        if ($this->_request->isPost())
  7.        {
  8.            $f = new Zend_Filter_HtmlEntities(ENT_QUOTES);
  9.            $username = $f->filter($this->_request->getPost('user'));
  10.            $password = sha1($f->filter($this->_request->getPost('upasid')));
  11.  
  12.            if (empty($username))
  13.            {
  14.                $this->view->message = 'Nie podano nazwy użytkownika.';
  15.            }
  16.            else
  17.            {
  18.                $db = Zend_Registry::get('db');
  19.                $authAdapter = new Zend_Auth_Adapter_DbTable($db,
  20.                    'users',
  21.                    'name',
  22.                    'password',
  23.                    ' AND active = TRUE');
  24.  
  25.                //$authAdapter->setTableName('users');
  26.                //$authAdapter->setIdentityColumn('name');
  27.                //$authAdapter->setCredentialColumn('password');
  28.                $authAdapter->setIdentity($username);
  29.                $authAdapter->setCredential($password);
  30.  
  31.                $auth = Zend_Auth::getInstance();
  32.                $result = $auth->authenticate($authAdapter);
  33.  
  34.                switch ($result->getCode())
  35.                {
  36.                    case Zend_Auth_Result::FAILURE_IDENTITY_NOT_FOUND:
  37.                        //nieistniejący użytkownik
  38.                        $this->view->message = 'Użytkownik o podanym loginie nie istnieje.';
  39.                    break;
  40.  
  41.                    case Zend_Auth_Result::FAILURE_CREDENTIAL_INVALID:
  42.                        //niepoprawne hasło
  43.                        $this->view->message = 'Nieprawidłowe hasło.';
  44.                    break;
  45.  
  46.                    case Zend_Auth_Result::SUCCESS:
  47.                        //sukces
  48.                        if ($result->isValid())
  49.                        {
  50.                            $data = $authAdapter->getResultRowObject(null, 'password');
  51.                            $auth->getStorage()->write($data);
  52.                            $this->_redirect('somewhere');
  53.                        };
  54.                    break;
  55.  
  56.                    default:
  57.                        //to do
  58.                    break;
  59.                };
  60.            };
  61.        };
  62.    }
  63. }
  64. ?>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
gazelek
post
Post #2





Grupa: Zarejestrowani
Postów: 85
Pomógł: 3
Dołączył: 28.02.2008

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


Pozwole sie podpiac. Wykorzystuje powyzszy przyklad z manuala. Chcialem zrobic dwa logowania w obrebie jednej strony (jedno dla uzytkownika, drugie dla administratora). Wykorzystujac ten przyklad uzytkownik po zalogowaniu sie uzyskuje dostep rowniez do panelu administracyjnego. Czy jest jakas metoda rozwiazania tego po stronie skryptu? Bo jedyne, co mi przychodzi teraz na mysl, to usuniecie tabeli administratorow i nadawanie uzytkownikom praw dostepu, ale to rozwiazanie po stronie bazy danych....
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 - 21:31