Domanda

Sto costruendo un sito con CakePHP che vorrei avere 3 sezioni:

  • area pubblica
  • area utente
  • area di amministrazione

Ho installato il prefisso di routing in routes.php che assomiglia

Router::connect('/user/:controller/:action/*', array('prefix' => 'user', 'user' => true));
Router::connect('/admin/:controller/:action/*', array('prefix' => 'admin', 'admin' => true));

lo voglio così eventuali azioni con il prefisso user_ reindirizzerà ad una schermata di login, se non già effettuato l'accesso e tipo di utente è 'normale' (domanda lato: può un utente essere normale: P) e le eventuali azioni con admin_ prefisso anche reindirizzare ma richiedono tipo di utente di amministratore.

ho iniziato cercando di utilizzare il componente Auth, ma sembra piuttosto inflessibile mentre ACL sembra sopra le righe. Qualcuno potrebbe offrire alcuni consigli sul modo migliore per ottenere ciò che voglio?

È stato utile?

Soluzione

Il componente Auth dovrebbero essere sufficienti flessibile per questo.

Si potrebbe fare un beforeFilter() in questo modo:

//  I think it's params['prefix'], might be different
//               vvvvvvvvvvvvvvvv
if (isset($this->params['prefix'])) {
    $this->Auth->userScope = array('User.type' => $this->params['prefix']);
}

È anche possibile aggiungere funzioni isAuthorized() per sia il vostro modello o di controllo su una base come-necessaria per fare l'autenticazione ancora più avanzato. Vedere http: //book.cakephp .org / 1.3 / it / I-Manuale / core-Componenti / Authentication.html # authcomponent-variabili .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top