Hola estoy con el tema de hacer una web con el patron MVC implementandolo de la siguiente manera:
El cliente invoca una web, el controlador es el encargado de tomar los datos y modificar, de ser necesario, el modelo de datos y largar la vista adecuada. La vista la cual el controlador invocó, tomará los datos necesarios del modelo de datos y mandará al cliente la web correspondiente.
Con esto me refiero a que en realidad el controlador nunca le pasa los datos a la vista, si no que esta se los sirve solo.
Esta es una de las posibles implementaciones del modelo MVC que más me gusto ya que la vista no se debe relacionar con el controlador y asi se mantiene un modelo cliente servidor entre los componentes.
Pero esto me lleva a un problema... cuando quiero hacer mi sistema de usuario, cada usuario tiene acceso o no a los datos, tanto para verlos como para editarlos, crearlos o borrarlos.
Es correcto que el modelo realice la comprobacion del acceso a los recursos de cada usuario?? o esto debe ser tarea del controlador??
Por un lado mi implementación me parece correcta ya que en cierta forma la información de que puede o no hacer cada usuario esta en el modelo, por lo tanto si hago que los datos antes de llegar a la vista pasen por el controlador, este recibiria datos y tendría que invocar nuevamente al modelo para comprobar que puede hacer el usuario.
Pero me queda la duda que pasa cuando la vista toma los datos del modelo de datos!!! Porque si algun recurso no es accesible por un usuario esta tendría que cambiar su visualizacion, me refiero a que por ejemplo en vez de mostrar el recurso tendria que mostrar un mensaje de error o algo parecido. Esto es correcto para este modelo???
Cual les parece que seria la mejor forma de implementar MVC con estas condiciones?
Gracias