# dbr.security **dbr.security.dkl** Funciones para la verificación de privilegios granulares asociados a grupos de usuarios o privilegios sobre entidades. ### isauth Comprueba si el usuario autenticado actualmente pertenece a un grupo de usuarios que tiene el permiso especificado. ``` dbr.security.isauth::&db,priv_id ``` ##### Parámetros * `db` - Referencia a una conexión de bases de datos * `priv_id` - Es una cadena con el identificador de un privilegio o privilegio sobre entidades(separado por :) ##### Valor de retorno Numérico (booleano): @true si el usuario pertenece a un grupo con el privilegio indicado o @false en caso contrario. ##### Excepciones Excepciones de bases de datos ##### Ejemplo Use código similar al siguiente para verificar si el usuario conectado a la base de datos actual pertenece a un grupo de usuarios que cuenta con un determinado privilegio. ``` #include "dkli.dkh" #! program { #include "functions.dkh" #include "dbr.dkh" #include "dbr.security.dkl" ref db = dbr.open("mydb@myappgroup") priv_id = "Id de un privilegio : id de un tipo de elemento de dato : entidad" - GP11 : privilegio de obtener presupuesto - DET060 (opcional): Tipo del elemento de dato a la que pertenece la entidad. - 5001 (opcional): Entidad(referencia de la unidad organizacional). //ejemplos //dbr.security.isauth(db,"GP11") //dbr.security.isauth(db,"GP11:DET060:5001") if dbr.security.isauth(db,priv_id) { // El usuario conectado a la db pertenece a un grupo que tiene el privilegio indicado } else { // No autorizado } } ``` ### admins Devuelve el id de un grupo de usuario configurado o encontrado por default. Si la variable global `admins_group_id` está configurado , devolverá el id del grupo que sea igual con el valor de la variable, si el grupo encontrado esta eliminado lógicamente o si no encuentra ningún grupo buscará el primero que contenta `admin` al inicio del id del grupo y que no se encuentre eliminado. ``` dbr.security.admins::&db ``` ##### Parámetros * `db` - Referencia a una conexión de bases de datos. ##### Valor de retorno Id de un grupo de usuarios encontrado(default devuelva cadena vacía). ##### Excepciones Excepciones de bases de datos ##### Ejemplo ``` #include "dkli.dkh" #! program { #include "functions.dkh" #include "dbr.dkh" #include "dbr.security.dkl" ref db = dbr.open("mydb@myappgroup") id_grupo_usuario=dbr.security.admins(db) } ``` ### assign Asigna privilegios existentes a un grupo dado. ``` dbr.security.assign::&db,groupid,&privs ``` ##### Parámetros * `db` - Referencia a una conexión de bases de datos * `groupid` - Identificador de un grupo de usuario. * `privs` - Lista de privilegios. ##### Valor de retorno Ninguno (0) ##### Excepciones - Excepciones de bases de datos. - No pudo encontrarse el grupo de usuario indicado. ##### Ejemplo ``` #include "dkli.dkh" #! program { #include "functions.dkh" #include "dbr.dkh" #include "dbr.security.dkl" ref db = dbr.open("mydb@myappgroup") id_grupo_usuario=dbr.security.admins(db) ref privs=list.create() do list.add(privs,"priv_01") do list.add(privs,"priv_02") do list.add(privs,"priv_03") do dbr.security.assign(db,id_grupo_usuario,privs) } ```