Diferencia entre revisiones de «Roles»

De Egeasy
Saltar a: navegación, buscar
(Definición, sintaxis y herencia de un rol)
(Definición, sintaxis y herencia de un rol)
Línea 5: Línea 5:
 
<p>¿Y qué clase de permisos podemos asignar a un rol?</p>
 
<p>¿Y qué clase de permisos podemos asignar a un rol?</p>
  
==Definición, sintaxis y herencia de un rol==
+
==Definición, sintaxis y herencia==
 
<p>La definición de un rol sólo se permite realizar como definición de tipo, es decir, con la palabra reservada {{PR|tipo}}. No se permiten las definiciones de rol (<code>[Nombre] {{PR|es}} {{RE|rol}}</code>). Estas definiciones de tipo, se podrán declarar como abstractas, de manera que dicho rol no podrá ser asignado a ningún usuario.</p>
 
<p>La definición de un rol sólo se permite realizar como definición de tipo, es decir, con la palabra reservada {{PR|tipo}}. No se permiten las definiciones de rol (<code>[Nombre] {{PR|es}} {{RE|rol}}</code>). Estas definiciones de tipo, se podrán declarar como abstractas, de manera que dicho rol no podrá ser asignado a ningún usuario.</p>
 
<p>Al igual que cualquier definición en ODL, la definición de roles también permite la herencia. Esto permite heredar permisos entre un rol derivado y un rol padre, además de poder redefinir permisos heredados.</p>
 
<p>Al igual que cualquier definición en ODL, la definición de roles también permite la herencia. Esto permite heredar permisos entre un rol derivado y un rol padre, además de poder redefinir permisos heredados.</p>

Revisión del 15:36 23 abr 2009

¿Qué es un rol?

Un rol es un recurso de ODL cuyo objetivo es limitar el acceso a los usuarios que van a interactuar con los diferentes elementos que intervienen en un sistema de información.

Un rol por sí solo no permite ni restringe ningún acceso, sino que en él se incluyen permisos que se encargarán de especificar el nivel de acceso que va a tener un usuario a elementos concretos del sistema de información.

¿Y qué clase de permisos podemos asignar a un rol?

Definición, sintaxis y herencia

La definición de un rol sólo se permite realizar como definición de tipo, es decir, con la palabra reservada tipo. No se permiten las definiciones de rol ([Nombre] <code>es rol</code>). Estas definiciones de tipo, se podrán declarar como abstractas, de manera que dicho rol no podrá ser asignado a ningún usuario.

Al igual que cualquier definición en ODL, la definición de roles también permite la herencia. Esto permite heredar permisos entre un rol derivado y un rol padre, además de poder redefinir permisos heredados.

La sintaxis de la definición de un rol debe ser la siguiente:

tipo [Nombre] es rol
    ...
    ...
    Asignación de permisos
    ...
    ...
fin

Tipos de permisos

Ya sabemos que los permisos habilitan a un usuario para que acceda a los elementos del sistema. Pero, ¿a qué elementos podemos acceder?

Permisos sobre contenedores

Para acceder a cualquier objeto, ya sea de sistema o no, será necesario incluir un permiso asociado a la definición de contenedor a la que pertenezca el objeto. Para esto, tendremos tres tipos de permisos dependiendo del nivel de acceso que queramos adquiera el usuario:

  • abrir: sólo puede abrir los objetos de ese tipo, pero no modificarlo ni crear nuevos. Tampoco puede eliminar.
  • modificar: puede abrir los objetos existentes y modificarlos, pero no crear nuevos. Tampoco puede eliminar.
  • crear: tiene todos los permisos sobre los objetos de ese tipo. Puede crear, modificar, abrir y eliminar (no válido para objetos de sistema).
  • Sin_Acceso: impide el acceso a los objetos del tipo indicado.

La sintaxis para definir un permiso a un objeto es la siguiente:

accede [Definición de contenedor]: permiso;

Permisos sobre habitaciones

Otro recurso de ODL a los que puede acceder un usuario son las habitaciones. Éstas se utilizan para representar las oficinas de una organización. Por ello, el único permiso que se puede dar a un usuario es el de acceso a dicha oficina:

  • entrar: permite al usuario acceder a una habitación (oficina) concreta.
  • Sin_Acceso: impide el acceso a la habitación indicada.

Su sintaxis sería la siguiente:

accede [Definición de habitación]: entrar;

Permisos sobre tareas

Las tareas son también recursos de ODL a los que hay que limitar su acceso. En nuestro centro, cada tipo de usuario tendrá designado ciertas tareas, de modo que en la definición de rol correspondiente habrá que especificar de qué tareas se tratan.

Para las tareas no existen niveles de acceso como para los objetos. Simplemente se realizan o no se realizan. De manera que su sintaxis sería la siguiente:

realiza [Definición de tarea]

NOTA: Un usuario que tenga asignado la realización de una tarea, automáticamente tendrá asignados todos los niveles de acceso que afecten a los objetos que se puedan abrir, modificar o crear durante la realización de la tarea. Por tanto, no será necesario incluir estos permisos explícitamente en la definición del rol.

Permisos sobre firmas

Por último, existe otro tipo de acción a realizar por los usuarios de un centro que es el firmado de documentos. En una organización, institución o empresa se generan documentos que han de ser firmados por las personas indicadas para este fin. Por tanto, habrá que definir un rol específico para este tipo de usuarios donde se incluirán los permisos para la realización de las firmas. La sintaxis para firmar un documento (campo firma) es la siguiente:

firma [Definición de contenedor]:[Formulario].[Sección/es(si las hubiere)].[Campo firma];

Recursos públicos y privados

A la hora de definir un rol, hay un aspecto importante a tener en cuenta. Las definiciones de recursos en ODL están definidas por defecto como "públicas". Esto quiere decir que son accesibles por cualquier usuario del centro, tengan o no permisos de acceso en sus roles a estos recursos. El atributo -publico es el encargado de determinar este comportamiento, cuyo valor por defecto es verdadero. Por tanto, habrá que darle valor verdadero a este atributo en cada definición de recurso del centro que queramos no sea accesible. Una vez los recursos no sean públicos, entonces definimos los roles asignándole permisos que permitan acceder a los recursos que interesen.

Definición, sintaxis y herencia de un rol

  • La definición de un rol sólo se permite realizar como definición de tipo, es decir, con la palabra reservada tipo. No se permiten las definiciones de rol ([Nombre] <code>es rol</code>). Estas definiciones de tipo, se podrán declarar como abstractas, de manera que dicho rol no podrá ser asignado a ningún usuario.
  • Los roles permiten la herencia, al igual que cualquier definición en ODL. Esto permite heredar permisos entre un rol derivado y un rol padre, además de poder redefinir permisos heredados.
  • La sintaxis de la definición de un rol debe ser la siguiente:
tipo [Nombre] es rol
//permisos sobre contenedores accede [Contenedor A]: abrir; accede [Contenedor B]: modificar; accede [Contenedor C]: crear;
//permisos sobre habitaciones accede [Habitación Z]: entrar; accede [Habitación Y]: entrar;
//permisos sobre tareas realiza [Tarea 1] realiza [Tarea 2]
//permisos sobre firmas firma [Contenedor B]:[Formulario].[Sección].[Campo firma]; firma [Contenedor C]:[Formulario].[Sección].[Campo firma];
fin
  • Veamos ahora un caso práctico que trata los tipos abstractos, la herencia y la redefinición de permisos:
tipo abstracto [Permisos comunes] es rol    //rol que no podrá ser asignado a ningún usuario
accede [Libro de entrada]: abrir; accede [Libro de salida]: abrir; accede [Fichero de terceros]: abrir; accede [Registro de documentación]: abrir; accede [Expedientes de beca]: abrir; accede [Fichero de trabajadores]: abrir; accede [Oficina de recursos comunes]: entrar;
fin
tipo [Usuario Oficina del Registro] es [Permisos comunes]   //rol que hereda los permisos del rol "Permisos comunes"
accede [Entrada]: crear; accede [Expediente de beca]: crear; accede [Salida]: crear; accede [Tercero]: crear; accede [Requerimiento de documentación]: crear; accede [Oficina de recursos comunes]: Sin_Acceso; accede [Registro de entrada y salida]: entrar;
realiza [Registrar entrada] realiza [Elaborar requerimiento] realiza [Firmar requerimiento] realiza [Registrar salida de documentación]
firma [Requerimiento de documentación]:[Datos generales].[Firma del escrito];
fin