2010-12-31 13 views
6

Vorrei verificare se l'account dell'utente viene attivato durante l'accesso, ma il componente Auth di Cake si occupa dell'accesso in un modo che non so come controllare. Cake utilizza fondamentalmente una funzione di login vuota e non ho idea di come controllare il valore di User.active.cakephp condizioni di login personalizzate

Grazie in anticipo

risposta

11

L'AuthComponent ha una proprietà per stabilire le condizioni aggiuntive proprio come questo, chiamato $ userScope.

sufficiente includere questa linea nel vostro beforeFilter) blocco di setup (Auth:

$this->Auth->userScope = array('User.active' => true); 

Nota: quanto sopra vale per Cake 1.x. Per uso 2.x:

$this->Auth->scope = array('User.active' =>true); 

Quindi è possibile lasciare il vostro metodo di login vuoto e l'AuthComponent aggiungerà questa condizione in più durante l'autenticazione del visitatore.

È possibile visualizzare tutte le proprietà aggiuntive qui: http://book.cakephp.org/2.0/en/core-libraries/components/authentication.html#configuring-authentication-handlers

Se non si include questo ambito in più, quindi gli utenti non attivi saranno ancora in grado di accedere e si avrebbe a loro uscire nella tua metodo login() dopo il controllo.

0

Sul controller utenti, o dovunque si desidera inserire esso (l'azione che i link Login Form Per):

function login() { 
    if ($this->Session->read('Auth.User')) { 
     $active = $this->Auth->user('active'); 
     if ($active) { 
      //(do stuff) 
     } 
     else { 
      //(do other stuff) 
     } 
    } 
} 

Ciò presuppone che vi sia un "attivo" colonna nella tabella utente che contiene true o false (o 1 o 0). $ this-> Auth-> user() consente di accedere ai dati dell'utente loggato corrente. Maggiori informazioni qui: http://book.cakephp.org/view/1264/user

+0

Grazie per la risposta, ma in qualche modo non ha funzionato per me e comunque non mi piace l'idea di consentire all'utente di effettuare il login e quindi di disconnetterlo se non è attivo. Ma grazie comunque ;) – Elwhis

Problemi correlati