Eneboo - Documentación para desarrolladores
Métodos públicos | Atributos protegidos
Referencia de la Clase FLAccessControl

#include <FLAccessControl.h>

Diagrama de herencias de FLAccessControl
FLAccessControlForm FLAccessControlMainWindow FLAccessControlTable

Lista de todos los miembros.

Métodos públicos

 FLAccessControl ()
virtual ~FLAccessControl ()
QString name ()
QString user ()
QString perm ()
void setName (const QString &n)
void setUser (const QString &u)
void setPerm (const QString &p)
void clear ()
virtual QString type ()
virtual void set (QDomElement *e)
virtual void get (QDomDocument *d)
virtual void setAcos (const QStringList &acos)
virtual QStringList getAcos ()
virtual void processObject (QObject *obj)=0
virtual void setFromObject (QObject *obj)=0

Atributos protegidos

QString name_
QString user_
QString perm_
QDict< QString > * acosPerms_

Descripción detallada

Clase base para Controles de Acceso, tambin denominados Reglas de Control de Acceso.

Una regla de control de acceso se aplica a un usuario y a un objeto de alto nivel o contenedor (ventanas principales,tablas, etc..), que a su vez contendrn otros objetos (acciones, campos, etc..). La regla est definida por la siguiente informacin como cabecera de la misma, que la identifica unvocamente:

         tipo           ;         nombre         ;      usuario           ;      permiso
--------------------------------------------------------------------------------------------------
FLAccessControl::type ; FLAccessControl::name ; FLAccessControl::user ; FLAccessControl::perm

El tipo ser el del objeto de alto nivel, el nombre ser el del objeto, el usuario corresponder al nombre del usuario en la base de datos al que se le aplica la regla y permiso ser un identificador de texto que define el tipo de permiso que se atribuye al objeto para el usuario dado. Este permiso es general o global y se aplicar por defecto a todos los objetos hijos o que pertenezcan al objeto de alto nivel.

Al mismo tiempo una regla podr tener una lista de Objetos de Control de Acceso (denominados ACOs, Access Control Objects), a los que se les quiere aplicar un permiso distinto al general. Los ACOs sern objetos hijo o pertenecientes al objeto de alto nivel. Internamente la lista de ACOs est compuesta por tuplas de dos elementos; "nombre de objeto" y "permiso", el nombre de objeto ser el que tiene asignado dentro de la jerarqua de objetos pertenecientes al objeto de alto nivel y permiso ser el permiso para ese objeto y que sobreescribir al permiso general.

Los valores de la regla se podrn establecer a partir de un nodo DOM de un documento DOM/XML, mediante FLAccessControl::set . De forma recproca se podr obtener un nodo DOM con el contenido de la regla, a insertar en un documento DOM/XML, mediante FLAccessControl::get . La estructura general en XML del nodo DOM que representa una regla de control de acceso es la siguiente:

 <[mainwindow,table,etc..] perm="XXX">
  <name>XXX</name>
  <user>XXX</user>
  <aco perm="XXX">XXX</aco>
  ....
  <aco perm="XXX">XXX</aco>
 </[mainwindow,table,etc..]>

Por comodidad, tambin se proporciona el mtodo FLAccessControl::setAcos, que permite establecer la lista de ACOs de una regla directamente a partir de una lista de cadenas de texto.

Esta clase no est pensada para ser usada directamente, sino como base para clases derivadas que se encargan especficamente del procesamiento de objetos de alto nivel. Un ejemplo sera FLAccessControlMainWindow, que se encarga de control de acceso para objetos de alto nivel de tipo "mainwindow", es decir ventanas principales, como el selector de mdulos, o cada una de las ventanas principales de los mdulos.

Autor:
InfoSiAL S.L.

Documentación del constructor y destructor

FLAccessControl::FLAccessControl ( )

Constructor

FLAccessControl::~FLAccessControl ( ) [virtual]

Destructor


Documentación de las funciones miembro

void FLAccessControl::clear ( )

Limpia la regla vacindola y liberando todos los recursos

void FLAccessControl::get ( QDomDocument d) [virtual]

A partir del contenido de la regla de control de acceso crea un nodo DOM que se insertar como hijo del primer nodo de un documento DOM/XML.

Parámetros:
dDocumento DOM/XML donde se insertar el nodo construido a partir de la regla de control de acceso.
QStringList FLAccessControl::getAcos ( ) [virtual]

Obtiene una lista de cadenas de texto correspondiente a la lista de ACOs establecida

El formato de esta lista es igual al descrito en FLAccessControl::setAcos p.e.: "pbAbrir", "r-", "lblTexto", "--", "tbBorrar", "rw",...

Devuelve:
Lista de cadenas de texto con los objetos y permisos.
QString FLAccessControl::name ( ) [inline]

Obtiene el nombre del objeto de alto nivel.

Devuelve:
Cadena de texto con el nombre del objeto.
QString FLAccessControl::perm ( ) [inline]

Obtiene el permiso general.

Devuelve:
Cadena de texto que identifica el permiso a aplicar.
virtual void FLAccessControl::processObject ( QObject obj) [pure virtual]

Procesa un objeto dado aplicando la regla de control de acceso.

Este mtodo es virtual puro, y deber definirse en cada una de las clases derivadas que se encargan de control de acceso de un tipo de objeto especfico. Por lo tanto, qu se tiene que hacer y cmo se debe hacer con la informacin de la regla de control de acceso con respecto a un tipo de objeto de alto nivel concreto queda en el mbito de la clase derivada que se encarga de ese tipo de objeto.

Parámetros:
objPuntero general al objeto a procesar. Debe ser o heredar de la clase QObject.

Implementado en FLAccessControlMainWindow, FLAccessControlForm y FLAccessControlTable.

void FLAccessControl::set ( QDomElement e) [virtual]

Define la regla de control de acceso a partir de la informacin de un nodo DOM de un documento DOM/XML dado.

Parámetros:
eElemento correspondiente al nodo DOM que se utilizar para definir la regla.
void FLAccessControl::setAcos ( const QStringList acos) [virtual]

Establece la lista de ACOs a partir de una lista de cadenas de texto.

Esta lista de textos deber tener en sus componentes de orden par los nombres de los objetos,y en los componentes de orden impar el permiso a aplicar a ese objeto, p.e.: "pbAbrir", "r-", "lblTexto", "--", "tbBorrar", "rw",...

Parámetros:
acosLista de cadenas de texto con los objetos y permisos.
virtual void FLAccessControl::setFromObject ( QObject obj) [pure virtual]

Define la regla de control de acceso a partir de las propiedades de un objeto concreto.

Las clases derivadas para cada uno de los tipos de objetos deber implementar cmo se define la regla de control a partir de las propiedades del objeto especfico.

Parámetros:
objPuntero general al objeto a procesar. Debe ser o heredar de la clase QObject.

Implementado en FLAccessControlMainWindow, FLAccessControlForm y FLAccessControlTable.

void FLAccessControl::setName ( const QString n) [inline]

Establece el nombre del objeto de alto nivel.

Parámetros:
nNombre del objeto.
void FLAccessControl::setPerm ( const QString p) [inline]

Establece el permiso general.

Parámetros:
pCadena de texto con el identificador del permiso.
void FLAccessControl::setUser ( const QString u) [inline]

Establece el nombre del usuario de la base de datos.

Parámetros:
uNombre (login) del usuario.
QString FLAccessControl::type ( ) [virtual]

Devuelve una constante de texto que identifica el tipo.

Esta funcin deber ser reimplementada en las clases derivadas que se encargan del procesamiento de un tipo de objeto concreto y devolver el identificador pertinente.

Devuelve:
Cadena de texto que identifica al tipo de objeto general de la regla, p.e.: "table".

Reimplementado en FLAccessControlMainWindow, FLAccessControlForm y FLAccessControlTable.

QString FLAccessControl::user ( ) [inline]

Obtiene el nombre del usuario de la base de datos.

Devuelve:
Cadena de texto con el nombre (login) del usuario.

Documentación de los datos miembro

Diccionario de permisos especficos de los ACOs (Access Control Objects) hijos o pertenecientes al objeto de alto nivel. El diccionario almacena la correspondencia entre el nombre del ACO (utilizado como clave de bsqueda) y el permiso a aplicar.

Almacena el nombre del objeto de alto nivel.

Almacena el permiso general de la regla de control de acceso.

Almacena el nombre del usuario de la base de datos.


La documentación para esta clase fue generada a partir de los siguientes ficheros:
 Todo Clases Namespaces Archivos Funciones Variables 'typedefs' Enumeraciones Valores de enumeraciones Propiedades Amigas 'defines'