Estoy escribiendo una aplicación web con algunos requisitos ACL: un usuario puede hacer cambios en algunos elementos, algunos pueden editarlos varios usuarios, el administrador puede editar cualquier cosa y un administrador puede editar todo dentro de su organización, etc.¿Debe la autorización ser parte del modelo o controlador?
¡Estoy usando Play! marco, y por el aspecto del módulo Secure
, parece que el lugar para poner preocupaciones de autorización está en los Controladores. Sin embargo, me parece que los problemas de autorización son parte de la lógica comercial y, por lo tanto, deberían estar en el modelo. Además, estoy empezando a ver una lógica duplicada en los controladores que necesito refactorizar.
Por otro lado, agregar autorización al modelo significa que tendría que haber alguna manera de obtener el usuario actual dentro del modelo, lo que no parece correcto. Alternativamente, podría agregar un parámetro "current_user" a cada método de modelo, pero eso parece incluso peor.
¿Cuál es la práctica más común? ¿Puedo/debo poner código de autorización en el modelo o mantenerlo en el controlador?
Entonces, ¿qué es, área gris o absolutamente correcto? :) – itsadok
En mi opinión, creo que es absolutamente correcto, sin embargo, es un área gris y por lo tanto, está abierto a la interpretación.Por lo tanto, depende de si está de acuerdo con mi interpretación o no: o) – Codemwnci