Hola,
Gracias
Caral. Bueno. Yo hago algo parecido en la aplicación que comento. En una tabla de la base de datos se guarda lo necesario para "asignar a cada usuario" un "nivel". Cuando un usuario se autentica en la aplicación se recoge el dato y desde ese momento el usuario tiene ya un nivel asignado, un rol, y, por tanto, unas "capacidades".
Pero, hasta el momento, únicamente estoy evitando que un usuario puede hacer esta o aquella cosa, desde la propia interfaz. Básicamente, lo que he comentado antes: un usuario trata de acceder al formulario de inserción de registros; se comprueban sus permisos; no tiene suficientes; se le redirige a otro lugar, no se le enseña el formulario en cuestión.
Pero, si el usuario tiene permisos... la intefaz "le deja pasar", y, cuando el usuario inserte un nuevo registro, pongamos por caso, se ejecuta un determinado método de una clase "BD". Es en esta clase donde ahora mismo no distingo entre usuarios... es decir, es como si dijera, "oyes, si has podido ejecutar este método, entonces asumo que tienes los permisos para ejecutarlo".
Y no sé si eso basta o si tendría que también ahí, en el propio método que inserta nuevos registros a la base de datos, si tendría, digo, que volver a comprobar si el usuario en cuestión tiene o no permisos suficientes. Lo de menos es hacerlo. O sea, que no es por no hacerlo, es que no estoy seguro de que se deban de enfocar así las cosas o qué.
Un "plugin" viene a ser una especie de añadido a la aplicación. Digamos que la aplicación no puede imprimir registros. Pero, permite "instalar plugins", de modo que algún plugin pueda imprimir, efectivamente, registros. Ahora bien, aquí está parte del asunto que me preocupa: el plugin no "pasa" por la interfaz.
El plugin se ejecuta "junto con la aplicación", no es un usuario, y, por tanto, no necesita pasar por un formulario en la interfaz para acceder a los registros, por ejemplo. Ahora bien, entonces, me pregunto ahora, ¿es el autor del supuesto plugin quien tiene que preocuparse de que un usuario tenga permisos suficientes para hacer esta o aquella cosa?
¿En todo caso, independientemente de lo que haga el plugin, en todo caso, digo, sería mejor que el método de la clase "BD" que añade registros a la base de datos, comprobara si el usuario que ejecuta el método tiene permisos o no los tiene? Pensando en ello comienzo a pensar de esta manera... creo que va a ser necesario que el propio método compruebe si el usuario dispone de permisos... además de la interfaz...
Y ya digo, que no es por no hacerlo así, sino que me quedan dudas...
