| cArchivo | Nombre del archivo con la información del control de acceso (solo lectura) |
| cAlias | Alias del archivo con la información del control de acceso (solo lectura) |
| cAutoriza | Usuario que autoriza cuando se pide autorización de otra persona (solo lectura) |
| nOpor | Número de intentos que se dan para dar la clave correcta, por defecto son 3 |
| lSiErr | Indica si muestra el mensaje de clave incorrecta, por defecto es .t. |
| aTipAccesos | Textos utilizados para la asignación de derechos, puede cambiarse el texto de cada una de las opciones, pero no el derecho correspondiente |
| bUpdateAdm | Codeblock que se evalua para cargar la configuración superadmin si se guarda la configuración del usuario en el mismo archivo de passwords, devido a que superadmin no guarda la información en el archivo, este codeblock es el lugar donde se cargan esos datos, es el equivalente a bUpdateUsr para superadmin |
| bUpdateUsr | Codeblock que se evalua para cargar la configuración
del usuario si se guarda en el mismo archivo de passwords,
esta información es totalmente independiente al control
de derechos, y no es utilizada por qPassword para nada,
simplemente da opción al programador para manejar
información del usuario en el mismo archivo de control
de acceso. Este codeblock recibe como parámetro el alias del archivo. |
| bUpdateSin | Codeblock que se evalua para cargar la configuración cuando no se tiene acceso si se guarda la configuración del usuario en el mismo archivo de passwords, es el equivalente a bUpdateUsr para cuando el usuario no dio la clave correcta |
| cUsuario | Clave o nombre de usuario utilizado para accesar (solo lectura) |
| cPassword | Password del usuario (solo lectura) |
| cNombre | Nombre del usuraio (solo lectura) |
| cKey | Llave utilizada para la encriptación de la información |
| cTitulo | Título utilizado para la ventana que pide el password, por defecto "" |
| cTxt | Texto que se antepone a la clave de usuario cuando se tiene asinga un objeto para poder mostrarlo, ya sea por el método new() o por el método mustraUsr(), por defecto "Usuario: " |
| lCambPswd | Indica si el usuario debe cambiar el password la siguiente ocación que ingrese al programa (solo lectura) |
| lBloqueado | Indica si el usuario está bloqueado, por lo cual no se le dará acceso aunque de el password correcto (solo lectura) |
| lDefault | Indica si el botón aceptar es DEFAULT, o sea, que se activa al dar enter aunque no tenga el foco, por defecto es .t. |
| lVerPsw | Indica si se muestran los passwords de los usuarios en el browse del módulo de mantenimiento |
| lSuperAdmin | Indica si el usuario es superadmin (super administrador) (solo lectura) |
| nCampo | Número del campo que contiene los derechos que se utilizan para este objeto, por defecto es 2 |
| nTamMinPsw | Tamaño mínimo que deberá tener el password, por defecto es cero (0) |
| lPswAdmin | Indica si se permite el acceso a todas las opciones que piden passwrod utilizando la clave de superadmini indicada en bPswAdmin en lugar del password del usuario. |
| bPswAdmin | Codeblock que permite el acceso con la clave de superadmin indicar la clave de superadmin, recibe como parámetros usuario y password, y debe devolver un valor lógico, por defecto se tienen { || .f. }. |
| lMinusculas | Indica si permite difrenciar el password en mayúsculas y minúsculas, por defecto es .t. |
| xBloqueaDBF | Codeblock, nombre de función o apuntador a la
función que se encargará de bloquear o desbloquer el
archivo DBF, esto permite encriptar el archivo o
cualquier operación para encriptar el archivo, esta
función tiene que realizar algo simple y que no cree
conflictos con el uso del archivo en el abmiente
compartido (SHARED) de xBase, la función es llamada en
tres ocaciones: 1. Antes de abrir el archivo, se envían como argumentos el nombre del archivo y verdadero (.t.) 2. Si el archivo se abre en modo compartido (SHARED), despues de abrir el archivo 3. Si el archivo se abre de manera exclusiva, al momento de cerrar el archivo Esta función debe devolver .t. o .f., lo que indica si se realizó la operación correctamente porque será considerada al momento de abrir el archivo, si devuelve .f. no se abrirá, ni siquiera se hará el intento. Si no se indica, simplemente se abre el archivo de manera normal. |
| xHelpPass | Clave de la ayuda para el diálogo cuando pregunta el password |
| xHelpConf | Clave de la ayuda para el diálogo cuando pregunta el password por confirmación |
| nHlpUsua | Clave de ayuda para el GET que pide usuario |
| nHlpPswd | Clave de ayuda para el GET que pide el password |
| nHlpAcep | Clave de ayuda para el botón "Aceptar" |
| nHlpCanc | Clave de ayuda para el botón "Cancelar" |
| new() | Método constructor |
| muestraUsr() | Indica el objeto que mostrará el nombre del usuario |
| password() | Pide el password para el control de acceso o indica si se tiene acceso de lectura a algún módulo según los derecho asignados (para esta segunda opción es recomendable usar el método permiso() en lugar de éste) |
| permiso() | Indica si el usuario tiene acceso a determinado módulo u opción |
| confirmar() | Si el usuario tiene acceso a una opción, pide el password únicamente para confirmar, si no tiene acceso ni siquiera pide el password |
| accesos() | Abre la opción de mantenimiento del control de accesos |
| asignPswd() | Permite cambiar el password del usuario |
| indices() | Permite agregar los índices para generar índices dentro de los comandos dbfs/end dbf o su equivalente en llamado a métodos de un entorno para poder dar mantenimiento a índices y depuración (pack) del archivo de passwords |
| cambiaUsuario() | Carga los datos del usuario indicado y borra la información del actual |
| Definición | Valor | Permiso | ||
|---|---|---|---|---|
| PSW_NEGADO | 0 | Sin acceso | ||
| PSW_LECTURA | 1 | Permiso de consulta | ||
| PSW_ESCRITURA | 2 | Lectura y escritura | ||
| PSW_BORRADO | 3 | Lectura, escritura y borrado |
| cKey | Llave utilizada para encriptar la información dentro del archivo |
| olMostrar | Indica donde se mostrará el usuario activo: .t. - Lo muestra en la barra de mensajes de la venta principal, si no hay barra, la crea objeto - Es el objeto donde se mostrará (say, get, etc.) Si no se envía, no muestra el usuario |
| xHelpPass | Clave de la ayuda para el diálogo cuando pregunta el password |
| xHelpConf | Clave de la ayuda para el diálogo cuando pregunta el password por confirmación |
| cArchivo | Nombre del archivo DBF con la información del control de acceso, no es necesario envíar la extensión, si no se envía, tomará la extensión predeterminada, si no se envía será "password.dbf" |
| lSiErr | Indica si muestra (.t.) o no (.f.) el mensaje de clave incorrecta, si no se envía se muestra |
| nOpor | Número de oportunidades que se dan para dar la clave correcta, si no se envía se dán 3 intentos |
| olMostrar | Indica donde se mostrará el usuario activo: .t. - Lo muestra en la barra de mensajes de la venta principal, si no hay barra, la crea objeto - Es el objeto donde se mostrará (say, get, etc.) Si no se envía, no muestra el usuario |
| xModulo | Si se envía: 1. "superadmin" en minuscula, pide la clave de Super Administrador, superadmin es el usuario maestro, no se puede eliminar y tiene acceso a todas las opciones, ni siquiera aparece en la opción de mantenimiento de usuarios. 2. cadena de caracteres difrente a "superadmin", pide el password correspondiente a ese usuario. 3. número 0 (cero), pide usuario y el password y carga la información para poder validar los de usuario. Esta es la opción indicada para cuando se quiere pedir el usuario al inicio del programa, también puede llamarse si se quiere cambiar de usuario sin tener que salir del programa. 4. número permitido en el rango de derechos, devuelve .t. o .f. indicando si tiene ese derecho permitido o no, para esta opción es recomendable utilizar utilizar el método permiso() en lugar de password() 5. número -1, pide usuario y el password unicamente para validar si se le dá acceso a esa opción, pero sigue concervando los datos del usuario que tiene acceso al programa. Esto opción, por ejemplo, puede utilizarse para pedir la autorización de un supervisor. Si se otorga el acceso, el usuario que autorizó es guardado en la variable ::cAutoriza. 6. codeblock , pide usuario y password, pero en lugar de validar el acceso con la información del archivo de control de accesos, evalúa el codeblock para validar el acceso, el resultado debe ser verdadero (.t.), cualquier otro resultado se considera como acceso negado, el codeblock recibe como parámetros el usuario y password. 7. valor lógico, devuelve el mismo valor lógico como respuesta de autorización 8. cualquier otro dato, pregunta la clave de superadmin (punto 1) |
| cTitulo | Título para la ventana que pide el password, si o se envía tomará el de la variabe de instancia ::cTitulo |
| xAyuda | Clave para la ayuda, si no se envía, toma la de la variable de instancia ::xHelpPass |
| lSiErr | Indica si muestra (.t.) o no (.f.) el mensaje de clave incorrecta, si no se envía toma el de la variable de instancia ::lSiErr |
| nOpor | Número de oportunidades que se dan para dar la clave correcta, si no se envía toma el de la variable de instancia ::nOpor |
| nModulo | Número del módulo que se quiere accesar |
| nPermiso | Número del permiso que se pide para tener acceso |
| nModulo | Número del módulo que se quiere accesar |
| cTitulo | Título para la ventana que pide el password, si o se envía tomará el de la variabe de instancia ::cTitulo |
| xAyuda | Clave para la ayuda, si no se envía, toma la de la variable de instancia ::xHelpConf, si ésta no tiene, tomará la de ::xHelpPass |
| lSiErr | Indica si muestra (.t.) o no (.f.) el mensaje de clave incorrecta, si no se envía toma el de la variable de instancia ::lSiErr |
| nOpor | Número de oportunidades que se dan para dar la clave correcta, si no se envía toma el de la variable de instancia ::nOpor |
| xModulo | Tipo de validación que se usará para permitir el acceso al módulo de mantenimiento de accesos a usuarios, generalmente se envía el número de módulo asignado, pero puede utilizarse cualquier opción permitida en el parámetro xModulo del método password() |
| aOpciones | Matriz con el control de opciones consideradas para
el control de accesos, cada elemento de la matriz debe
ser una matriz, de uno o dos elementos, donde: 1. El primier elemento será el texto mostrado o si es número, el manejador de un bitmap, el cual puede ser solo informativo o utilizado como nombre del módulo, dependiendo del valor del segundo elemento. 2. El segundo elemento, puede ser opcional, si no se tiene, o su valor es nil, indicará que se trata de una línea informativa, en caso contrario, debera contener un número, el cual será utilizado como la clave del módulo par el control de acceso, no debe olvidarse que el número no debe ser mayor al delimitado en el campo de permisos. |
| bMenu | Codeblock que devolverá el objeto tMenu mostrado,
este codeblock recibe como parámetro un codeblock que se
encargará de la creación del menú para el
mantenimiento de control de accesos. Si no se envía
bMenu, se utilizará el menú predeterminado como menú. Ejemplo: bMenu := { | bMenuAccesos | menuPrincipal( bMenuAccesos ) } function menuPrincipal( bMenuAccesos ) local oMenu menu oMenu menuItem "Mi opción" menu menuItem "Opcion 1" action msgInfo( 1 ) menuItem "Opcion 2" action msgInfo( 2 ) menuItem "Opcion 3" action msgInfo( 3 ) endMenu eval( bMenuAccesos ) menuItem "Mi otra opción" menu menuItem "Opcion 4" action msgInfo( 4 ) menuItem "Opcion 5" action msgInfo( 5 ) menuItem "Opcion 6" action msgInfo( 6 ) endMenu endMenu return oMenu |
| nMenuInfo | Numero de la opción donde se muestra el menú MDI en caso de tratarse de una ventana MDI |
| xAyuda | Clave para la ayuda si es que se pide password, si no se envía, toma la de la variable de instancia ::xHelpPass |
| aConfig | Matriz con la configuración adicional para el
usuario, si no se envía solamente se utilizará el
control de permisos y derechos, cada elemento de la
matriz debe ser una matriz de seis elementos que
contendrá cada una de las opciones de la configuración
del usuario, la estructura de cada elemento debe ser: 1. Texto o manejador de un bitmap que mostrará para identificar la opción. 2. Codeblock que mostrará el valor del campo, generalmente será { || alias->campo }. 3. Codeblock que guardara la información cuando se modifique la opción, el codeblock recibe como parámetro el nuevo valor a grabar, generalmente será { | x | alias->campo := x }. 4. Valor que mostrará el GET al momento de la edición por si se quisiera mostrar, por ejemplo, si se muestra un número el codeblock del punto 2 tendrá que convertir el número en cadena de caracteres, pero en el GET debera capturarse un númro. Si no se envía, se utilizará el valor mostrado en el elemento 2. 5. Mascarilla para el GET (PICTURE). 6. Codeblock con el valid para el GET, si no se envía, no se valida la captura, el codeblock recibe un parametro con el objeto del GET. |
| lPidePass | Indica si se pide el password actual del usuario para poder cambiarlo (.t.) o no se pide (.f.), si no se envía, no se pide el password |
| oUsr | Objeto qPassword del usuario al que se le quiere cambiar el password, si no se envía, se cambia el password del objeto actual |
| oDbfs | Objeto qEntorno en el que se incluirán los índices |
| cUsr | Usuario que se desea cargar |