Idioma: Español
En este artículo, exploramos los detalles del uso de Roles para determinar los permisos dentro de ActivityInfo. En ActivityInfo, puede crear Roles para controlar a qué datos pueden acceder los usuarios y qué acciones les permite realizar en su Base de datos.
En este artículo, puede aprender sobre conceptos clave y ver ejemplos relacionados con cómo puede usar Roles para definir los permisos de los usuarios.
Conceptos clave
Recursos
Los Recursos se refieren a Formularios, Carpetas, Informes y Bases de datos en ActivityInfo.
Operaciones
Las Operaciones se refieren a cualquier acción que se realiza sobre recursos y usuarios, tales como:
- Permisos a nivel de Registro, como ver, añadir, editar o eliminar registros.
- Permisos relacionados con operaciones, como administrar usuarios, añadir o editar formularios y administrar bloqueos.
Para más información sobre todas las operaciones posibles en ActivityInfo, consulte la lista completa de operaciones.
Concesiones
Una Concesión identifica el recurso específico sobre el cual se aplican las operaciones que un usuario tiene permitido realizar. Las Concesiones pueden aplicarse a cualquier tipo de recurso.
Las Concesiones son heredadas por todos los recursos que contienen. Una concesión que se aplica a una carpeta aplica los ajustes a todos los formularios/carpetas dentro de esa carpeta, mientras que una concesión que se aplica a una base de datos completa aplica los ajustes a todos los recursos dentro de esa base de datos. Las concesiones heredadas también pueden ser "sobrescritas" en un recurso contenido aplicando una nueva concesión en ese recurso, si se desea.
Cómo se heredan las concesiones
Los siguientes ejemplos utilizan una Base de datos con dos Formularios de Actividad y una Carpeta de Datos de Referencia, que contiene un Formulario de Asociado:
Si le da a un Rol una concesión explícita en la Base de datos, la Carpeta y todos los Formularios heredan esta concesión. Las operaciones de la concesión se aplican a todos estos recursos.
Si en cambio le da al Rol una concesión explícita en la Carpeta, solo la Carpeta y los Formularios dentro de ella heredan la concesión. El Rol no tiene permisos sobre los Formularios en la raíz de la Base de datos, porque no hay ninguna concesión en la Base de datos. Los usuarios con este Rol aún pueden ver la Base de datos, para poder navegar a la Carpeta.
Si le da al Rol una concesión explícita en un único Formulario, la concesión solo se aplica a ese Formulario. Los usuarios con este Rol aún pueden ver la Base de datos, para poder navegar al Formulario, pero no tienen permisos sobre los otros recursos.
Permisos de visualización en recursos contenedores
Cuando un Rol puede ver un recurso, los usuarios con ese Rol también pueden ver la Base de datos y cualquier Carpeta que lo contenga. De lo contrario, no tendrían forma de encontrar el recurso. Los usuarios solo pueden ver estos recursos contenedores. Por ejemplo, no pueden añadirles Formularios ni administrar sus usuarios.
Lo mismo se aplica a los subformularios. Si un Rol puede ver registros en un subformulario, los usuarios con ese Rol también pueden ver los registros principales, para poder encontrar los subregistros. Si la concesión en el subformulario tiene una condición en VER, los usuarios solo pueden ver los registros principales que cumplen esa condición. Los usuarios pueden ver estos registros principales, pero no pueden añadirlos, editarlos o eliminarlos.
Cómo sobrescribir una concesión heredada
Una concesión explícita en un recurso reemplaza la concesión que el recurso heredaría de otro modo. Por ejemplo, usted le da a un Rol una concesión en la Base de datos que le permite VER registros. La Carpeta y todos los Formularios heredan esta concesión:
Puede darle al Rol más operaciones en una parte de la Base de datos. Por ejemplo, añade una segunda concesión en la Carpeta que le permite VER, AÑADIR, EDITAR y ELIMINAR registros. La Carpeta y el Formulario de Asociado ahora usan esta concesión en lugar de la concesión de VER heredada:
También puede usar una concesión para restringir el acceso a una parte de la Base de datos. Por ejemplo, añade una concesión en la Carpeta sin operaciones. Los usuarios con este Rol ya no pueden acceder a la Carpeta y al Formulario de Asociado, pero aún pueden VER registros en los otros Formularios:
Concesiones opcionales
Una concesión puede establecerse como opcional, lo que significa que puede elegir si permite la concesión para cada usuario que invite a su base de datos.
Condiciones
Las Condiciones le permiten definir reglas que determinan sobre qué registros un usuario puede realizar operaciones. Las reglas siempre se expresan como una fórmula que se evalúa como TRUE o FALSE. El constructor de reglas le ayuda a escribir los tipos más comunes de fórmulas, incluyendo la determinación de si:
- Un registro está relacionado con un parámetro
- Un campo específico coincide con un valor o conjunto de valores especificados
- Un registro está asignado al/a la usuario/a
Sin embargo, siempre puede usar el editor de fórmula para escribir sus propias fórmulas, incluidas aquellas que hacen referencia a campos o subregistros relacionados.
Por ejemplo, desea limitar la visibilidad de los registros relacionados con menores de edad al personal autorizado. En su Formulario "Caso", tiene un Campo etiquetado como "EDAD". Al crear una condición con una regla donde la operación "VER" solo se permite cuando la fórmula "EDAD>18" es TRUE, se asegura de que los usuarios a quienes se aplica esta condición solo puedan ver los registros donde el valor en el campo EDAD es mayor que 18.
Se pueden combinar múltiples reglas para formar una condición en una operación específica, y puede decidir si todas las reglas son obligatorias o no para que se cumpla la condición. Además, puede establecer diferentes condiciones en diferentes operaciones. Por ejemplo, puede definir una condición que permita a un usuario VER todos los registros en un Formulario y otra condición que permita a los usuarios EDITAR solo los registros a los que están asignados.
Parámetros
Los Parámetros son atributos que se asignan a un usuario y que pueden usarse en condiciones para controlar las operaciones a nivel de registro que se les permite realizar.
Los Parámetros están vinculados a un formulario de referencia, como "Regiones", que proporciona los valores posibles que se pueden asignar a un usuario. Cuando invita a un usuario a su base de datos, le asigna un valor de parámetro específico, lo que asocia efectivamente a ese usuario con el registro correspondiente en el formulario de referencia.
Los Parámetros pueden luego usarse como parte de una regla en una condición para definir el conjunto de registros sobre los que se permiten operaciones. Cuando se usan parámetros en una condición, se limitan los registros sobre los que un usuario podría realizar acciones a aquellos registros que se refieren al valor de parámetro específico asignado al usuario. Por ejemplo, si a un usuario se le ha asignado "Oeste" para el parámetro "Regiones", entonces se puede configurar una condición para permitir que ese usuario AÑADA solo registros relacionados con la región "Oeste".
IMPORTANTE: Para permitir condiciones basadas en parámetros, su formulario debe tener un campo de referencia que apunte al formulario que contiene los valores posibles del parámetro. Si tiene un rol en el que permite condiciones en operaciones a nivel de registro que dependen de un parámetro, los usuarios asignados a este rol no podrán realizar esas operaciones a nivel de registro en formularios que no tengan un campo de referencia que apunte al formulario que contiene los valores posibles del parámetro.
Rol
Un Rol es una cierta combinación de Concesiones y Parámetros que usted asigna a un grupo específico de usuarios. Por lo tanto, los Roles son la forma principal por la cual usted controla qué acciones permite que los usuarios realicen en su base de datos. Cuando invita a un usuario a su base de datos, especifica cuál de los roles disponibles se le debe asignar, y todas las acciones que se le permite realizar estarán restringidas por las concesiones y permisos que haya definido para ese rol.
¿Cuántos Roles necesito?
Generalmente, puede definir un Rol para cada grupo de usuarios que realizan el mismo conjunto de tareas en su base de datos. Muy a menudo, esto puede alinearse con las diversas funciones dentro de su organización. Por ejemplo, puede definir un rol para Oficiales de Proyecto, otro rol para Líderes de Sector y otro más para Oficiales de Monitoreo y Evaluación.
Puede usar Concesiones y Parámetros para permitir flexibilidad en las acciones que pueden realizar diferentes usuarios y mantener al mínimo el número de Roles que necesita crear. Por ejemplo, en lugar de crear un rol separado para cada uno de sus asociados informantes (lo que será difícil de administrar si tiene muchos), puede crear un único rol llamado "Asociado Informante", que tiene un Parámetro para "Asociado". El Parámetro "Asociado" puede luego usarse como parte de una Condición para asegurar que sus asociados informantes solo puedan realizar acciones en registros asociados con su propia organización.
En algunos casos, las bases de datos se organizan por carpeta según líneas de clúster o tipos de programa. En el caso de la coordinación humanitaria, podría tener carpetas para Salud, WASH y NFI, por ejemplo. También podría tener tres roles diferentes dependiendo de la función de una persona dentro del clúster, como Líder de Clúster, IMO de Clúster y Miembro de Clúster. Para evitar tener 3 x 3 = 9 roles para Miembro del Clúster de Salud, Miembro del Clúster de WASH, etc., puede usar Concesiones opcionales para tener solo tres roles. Cuando asigne un rol de "Miembro de Clúster" a un usuario, también elegirá a qué recursos específicos del sector le está dando acceso.
Este diagrama ilustra las relaciones entre los diversos conceptos relacionados con los permisos. Los Roles pueden tener múltiples concesiones que permiten el acceso a varios recursos dentro de su base de datos. Cada concesión especifica las operaciones permitidas para el recurso seleccionado. Las operaciones a nivel de registro pueden tener condiciones adjuntas. Finalmente, los roles pueden tener múltiples parámetros definidos, que luego pueden aplicarse en condiciones a través de las concesiones según sea necesario.
Ejemplos
En esta sección, puede ver algunos ejemplos de diferentes roles con varios niveles de permisos.
Limitar el acceso a registros basado en un Parámetro
Escenario
Digamos que dirige un programa nacional donde el personal del programa atiende a beneficiarios en varias regiones. Tiene un formulario llamado "Registro de Beneficiarios" donde tiene un registro que contiene la información personal de cada beneficiario individual atendido por el programa. Su personal del programa está asignado para atender a los beneficiarios solo en su región asignada. Para garantizar la protección de datos personales sensibles, le gustaría asegurarse de que el personal del programa solo pueda acceder a los registros de los beneficiarios que viven en su región asignada. Para cumplir con estos requisitos, puede añadir un Rol con los siguientes ajustes.
Rol
Crea un único rol llamado "Oficial de Programa".
Parámetros
Dentro del rol "Oficial de Programa", crea un parámetro llamado "Región" que apunta a un formulario de referencia "Regiones" que contiene los siguientes valores posibles: "Norte", "Este", "Sur" y "Oeste".
Concesiones
Especifica que a este rol de "Oficial de Programa" se le debe conceder acceso al formulario "Registro de Beneficiarios", donde selecciona "Ver registros", "Añadir registros" y "Editar registros" como las operaciones permitidas.
Dentro de esta concesión, añade una condición con una regla donde las operaciones VER, AÑADIR y EDITAR se permiten solo en registros que están relacionados con el valor del parámetro "Región" asignado al/a la usuario/a.
De esta manera, los usuarios a los que se les asigne el rol de "Oficial de Programa" y se les dé el valor del parámetro "Región" de "Norte" solo podrían ver, añadir y editar registros en el formulario Registro de Beneficiarios donde el campo Región se haya establecido en Norte.
Limitar el acceso a registros basado en múltiples condiciones
Escenario
Imagine que está administrando una base de datos para una respuesta humanitaria coordinada con intervenciones que se implementan en varios sectores. Tiene varias organizaciones asociadas que añaden registros a la base de datos y desea controlar el acceso y las acciones en función de la organización asociada del usuario y el sector en el que opera. Para garantizar la integridad de los datos enviados por los asociados, desea restringir las acciones de entrada de datos para que los usuarios solo puedan añadir o editar registros asociados con su propia organización asociada. Sin embargo, para facilitar la coordinación entre los asociados, le gustaría permitir la visibilidad de los registros enviados por todos los asociados dentro de un sector determinado. Para cumplir con estos requisitos, puede añadir un Rol con los siguientes ajustes.
Rol
Crea un único rol para todos los asociados y lo nombra "Asociado Informante".
Parámetros
Define dos parámetros: uno para "Asociado", que apunta a su lista de organizaciones asociadas, y otro para "Sector", que apunta a su lista de sectores (por ejemplo, "Salud", "Educación", "WASH").
Concesiones
Especifica que a este Rol se le debe conceder acceso al formulario "Actividades", donde selecciona "Ver registros", "Añadir registros" y "Editar registros" como las operaciones permitidas.
Luego añade dos condiciones dentro de esta Concesión:
- Condición 1: VER solo los registros donde el campo "Sector" coincida con el valor del parámetro "Sector" asignado al/a la usuario/a.
- Condición 2: AÑADIR y EDITAR solo los registros donde el campo "Asociado" coincida con el valor del parámetro "Asociado" asignado al/a la usuario/a.
Limitar el acceso a registros basado en el/la usuario/a asignado/a
Escenario
Supongamos que está administrando una base de datos de Gestión de Casos donde cada caso se asigna a un/a único/a Trabajador/a de Casos. Debido a que su base de datos contiene información altamente sensible, desea asegurarse de que los/as Trabajadores/as de Casos solo puedan acceder a los registros de los casos a los que están asignados.
Rol
Crea un único rol llamado "Trabajador/a de Casos".
Concesiones
Especifica que este rol debe tener acceso al formulario "Casos", donde selecciona "Ver registros", "Añadir registros" y "Editar registros" como las operaciones permitidas.
Dentro de esta concesión, añade una condición con una regla donde las operaciones VER, AÑADIR y EDITAR se permiten solo en registros que están asignados al/a la usuario/a. Para este rol, añadirá una condición adicional con una fórmula utilizando el constructor de reglas. Esto crearía una regla con una fórmula que le permite hacer coincidir registros específicos con un/a usuario/a actual. Seleccionará la condición "Registro asignado al/a la usuario/a" y, con la fórmula, asignará "TrabajadorDeCaso == @user".
Con este rol, los/as Trabajadores/as de Casos solo podrían acceder e interactuar con los registros pertenecientes a los casos a los que están asignados.
El constructor de reglas contiene una fórmula preestablecida que filtra los registros basándose en si el valor seleccionado en un campo de usuario en el formulario coincide con el/la usuario/a actual.