La idea es hacer un administrador de permisos de usuarios. Atención que NO HAY QUE HACER EL CONTROL DE PERMISOS DE NADA. Imaginemos que la idea de permisos en un sistema tiene dos partes:
la definición de los permisos
la ejecución, o el "uso" de esos permisos, al momento de utilizar el sistema.
El objetivo del TP es solo concentrarnos en el primer punto.
Para eso vamos a hacer una webapp que nos proveea los casos de uso principales para la administración de permisos.
Van a poder elegir, como framework web para implementar esto:
apache wicket
seaside
Existen carpetas, que forman una estructura arborea.
Hay una carpeta root, y debajo múltiples niveles de carpetas hijas.
El sistema debe permitir crear, borrar y editar carpetas.
Existen usuarios
sin restricciones más que:
userName
password
El sistema debe permitir crear, borrar y editar usuarios.
Existe la idea de grupos
un grupo tiene un nombre/identificador
Se pueden agregar/eliminar usuarios de un grupo dado.
un Usuario puede pertenecer a más de un grupo.
Existe la idea de "Permiso", que consta de los siguientes elementos
"Quién" : para qué sujeto aplica este permiso.
un usuario específico
un grupo
* (todos)
"Qué" : sobre qué recurso aplica este permiso, es decir para qué carpeta.
"Cómo" : qué es lo que se le permite:
lectura
lectura + escritura
nada (elimina los permisos)
Hacer que persista en el forma de archivo de svn (ver formato acá).
Al crear un nuevo usuario, que le genere una carpeta propia con su nombre y le dé permisos.
Mejoras de usabilidad.
Mover una carpeta
Decirme las carpetas que puede leer/escribir un usuario - Los usuarios que pueden leer/escribir una carpeta.
Validaciones:
qué sucede si intento borrar un Grupo/Usuario que tiene permisos asociados ?
que tire un warning / confirmación ?
que proponga borrar también los permisos asociados (listandolos y permitiendo seleccionar ?)
qué sucede si intento borrar un Grupo que tiene usuarios asignados ?