Domanda

Nel mio modello di dati, ho un campo che dovrebbe essere admin-modificabile solo. Gli utenti normali possono modificare i record nel modello e visualizzare questo specifico settore, ma non dovrebbero essere in grado di modificarla. C'è una semplice / metodo pulito per fare questo? Credo che sia necessario creare un admin_edit ulteriore azione di controllo, ma qual è il modo migliore per "blocco" un campo di dati nel controllore?

È stato utile?

Soluzione

Non è necessario creare una nuova azione del controller, ma si può decidere così. Si noti che è comunque possibile utilizzare la stessa vista per utilizzando $this->render("edit") vedere: http: //book.cakephp. org / view / 428 / render

Penso che si dovrebbe:

  • utilizzare la stessa azione di controllo, se questo non confondere per gli utenti e gli amministratori
  • visualizzare un campo di input solo se l'utente è admin, e l'uscita del testo per gli altri utenti
  • di controllo per l'autorizzazione del regolatore

Altri suggerimenti

A seconda della configurazione, questo potrebbe facilmente essere gestita come un metodo di validazione del modello. Scrivere una funzione personalizzata nel modello per verificare se l'utente ha il permesso.

Si potrebbe anche farlo in modello con BeforeSave (). Se il campo è lì e che non hanno il permesso, rimuoverlo.

è possibile simly controllare sul ruolo admin nella vista edit

if (hasRoleAdmin) {
 echo $this->Form->input(...);
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top