Pregunta

En mi modelo de datos, tengo un campo que debe ser administrador puede editar solamente. Los usuarios normales pueden editar los registros en el modelo y ver este campo específico, pero no deben ser capaces de modificarlo. ¿Hay un enfoque simple / limpia de hacer esto? Creo que es necesario crear una acción de controlador admin_edit extra, pero ¿cuál es la mejor manera de "bloqueo" un campo de datos en el controlador?

¿Fue útil?

Solución

No es necesario crear una nueva acción del controlador, pero puede decidir de modo. Tenga en cuenta que todavía se puede utilizar el mismo punto de vista de que el uso de $this->render("edit") ver: http: //book.cakephp. org / view / 428 / procesamiento

Creo que deberías:

  • utilizar la misma acción del controlador, si eso no es confuso para los usuarios y los administradores
  • mostrar un campo de entrada sólo si el usuario es admin, y la salida del texto para otros usuarios
  • comprobación de autorización en el controlador

Otros consejos

Dependiendo de su configuración, esto podría fácilmente ser manejado como un método de validación en el modelo. Escribir una función personalizada en el modelo para comprobar si el usuario tiene permiso.

También podría hacerlo en modelo con beforeSave (). Si el campo está ahí y que no tienen permiso, eliminarla.

se puede comprobar simly en el rol de administrador en la vista de edición

if (hasRoleAdmin) {
 echo $this->Form->input(...);
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top