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, también 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 contendrán otros objetos (acciones, campos, etc..). La regla está definida por la siguiente información como cabecera de la misma, que la identifica unívocamente:

         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 serán 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 jerarquía 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 podrán establecer a partir de un nodo DOM de un documento DOM/XML, mediante FLAccessControl::set . De forma recíproca 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, también se proporciona el método 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 específicamente del procesamiento de objetos de alto nivel. Un ejemplo sería FLAccessControlMainWindow, que se encarga de control de acceso para objetos de alto nivel de tipo "mainwindow", es decir ventanas principales, como el selector de módulos, o cada una de las ventanas principales de los módulos.

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 vaciándola 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 método 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 específico. Por lo tanto, qué se tiene que hacer y cómo se debe hacer con la información 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 información 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 cómo se define la regla de control a partir de las propiedades del objeto específico.

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 función 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 específicos 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 búsqueda) 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'