- Table of contents
- Asignar permisos (AssignPermissions)
Asignar permisos (AssignPermissions)¶
Información¶
Autor David Henriquez.":mailto:d.henriquez@adapting.com Sitio Web http://www.facebook.com/adapting-lab Repositorio Código fuente Versión Actual v1.0 Compatible con Abox 2.7.9
Resumen¶
Esta acción asigna permisos a un contenido a los roles que se encuentren en un RoleLink/OrganizationLink propio enviando como parámetro el código del metadato y el permiso.
Los permisos pueden ser:
"none" Ninguno
"access" ver
"modify" Ver y Editar
"total" Control total
"inherit" Heredado
Ademas podrá usar la función heredar/no heredar, si hace uso de esta se ejecutará primero que la asignación de permisos al RoleLink.
Notas de instalación¶
Se encuentra en producto a partir de la 2.7.9
Guía de uso¶
Incluir en la transición del workflow el siguiente código xml:
Las acciones que puede realizar son:
1. Heredar.
2. No heredar.
3. Heredar y asignar permisos a roleLink/organizationLink.
4. No Heredar y asignar permisos a roleLink/organizationLink.
5. Asignar permisos a roleLink/organizationLink.
Nota: La herencia/no herencia aplica a todo el contenido no a los roles dentro del roleLink/organizationLink, La función de heredar/no heredar es la misma que se encuentra en la ficha de los contenidos o en las acciones relacionadas.
Haga uso de los parámetros según su necesidad.
<action type="AssignPermissions">
<param name="inherit">true/false</param>
<param name="fieldCode">code</param>
<param name="permission">none/access/modify/total/inherit</param>
</action>
Incluir en el archivo de recursos "guards_actions_keywords.config" del hoteditor:
<action code="AssignPermissions" available="true">
<name>Asignar permisos</name>
<description>Asigna permisos a los roles de un RoleLink en un contenido</description>
<type>Propiedades del contenido</type>
<contentTypes>
<contentType>document</contentType>
<contentType>casefolder</contentType>
<contentType>folder</contentType>
<contentType>webPage</contentType>
<contentType>service</contentType>
</contentTypes>
<params>
<param code="inherit" minOccurs="0" maxOccurs="1">
<type>bool</type>
<name>Heredar</name>
<description>Hereda o no los permisos del contenido padre</description>
</param>
<param code="fieldCode" minOccurs="0" maxOccurs="1">
<type>metadata</type>
<name>Código del roleLink</name>
<description>Código del roleLink/organizationLink que contiene los roles a los cuales se le otorgará los permisos</description>
</param>
<param code="permission" minOccurs="0" maxOccurs="1">
<type>list</type>
<name>Permisos</name>
<description>Permiso que se le otorgará a los roles contenidos en el roleLink/organizationLink</description>
<values>
<value code="none">Ninguno</value>
<value code="access">Ver</value>
<value code="modify">Ver y Editar</value>
<value code="total">Control total</value>
<value code="inherit">Heredado</value>
</values>
</param>
<param code="orgType" minOccurs="0" maxOccurs="1">
<type>string</type>
<name>Tipo de organización</name>
<description>Código del tipo de organización a las que se le asignan los permisos</description>
</param>
</params>
</action>
El workflow puede pasar N roles de tipos diferentes (usuarios, organizaciones y roles).
Se le ha incluido un nuevo uso al parámetro opcional HEREDAR=TRUE/FALSE (por defecto, debería coger TRUE), dándose 4 casos para cada valor:
CASO HEREDAR=TRUE:
Ninguno - en caso de que el rol tenga algún permiso siempre se asignará el permiso ninguno al contenido
Ver - sólo en caso de que el rol no tenga ningún permiso sobre el contenido, se le asignará el permiso de Ver
Ver y Editar - sólo en caso de que el rol tenga sólo el permiso de Ver o ninguno, se le asignarán los permisos de Ver y Editar
Control total - sólo en el caso de que el rol no tenga alguno de los 3 permisos sobre el contenido, se le asignarán los permisos que le faltan.
CASO HEREDAR=FALSE:
Ninguno - igual que antes
Ver - actúa siempre que el rol tenga algún permiso diferente a éste (editar, borrar o ninguno)
Ver y editar - actúa siempre que el rol tenga algún permiso diferente a éste (ninguno o borrar)
Control total - igual que antes
MÁS EJEMPLOS:
Si digo HEREDAR=FALSE quiero decir q prescindo de los permisos de ABOX, y le voy a meter eso a piñón.
Si digo HEREDAR=TRUE, es la nueva lógica que se ha explicado para no reducir permisos.
- Solo usuarios
- Solo roles
- Solo organizaciones
- Usuarios y Roles
- Usuarios y Organizaciones
- Roles y Organizaciones
- Usuarios y Roles y Organizaciones
Para el caso 6, los permisos se otorgarán solo a los usuarios que pertenezcan a todos los roles y organizaciones seleccionadas; y para 7 se aplica la misma lógica de 6 sumándole los usuarios seleccionados en el metadato.
22/02/2016 se agrego un nuevo parametro "role" para ingresar el codigo de un role a piñon, como una constante.
este parametro no puede convivir con el parametro "fieldCode".
XML HOTEDITOR
<param code="role" minOccurs="0" maxOccurs="*"> <type>role</type> <name>Roles</name> <description>Código del rol al que se le asignan los permisos</description> </param>
XML WORKFLOW
<action type="AssignPermissions"> <param name="inherit">false</param> <param name="role">BEC</param> <param name="permission">modify</param> </action>
26/02/2016 se agrego un nuevo parametro "deleteroles" para eliminar los permisos propios del contenido.
XML HOTEDITOR
<param code="deleteroles" minOccurs="0" maxOccurs="1"> <!-- NUEVO PARÁMETRO --> <type>bool</type> <name>Eliminar roles</name> <description>Elimina los permisos del contenido a todos los roles</description> </param>
XML WORKFLOW
<action type="AssignPermissions"> <param name="inherit">false</param> <param name="role">BEC</param> <param name="permission">modify</param> <param name="deleteroles">true/false</param> </action>
NOTA: los parametros <param name="deleteroles">true/false</param> y <param name="inherit">false</param> no pueden convivir, crean conflictos en los permisos.
11/03/2020 Se agregó la opción "inherit" al parámetro "permission" para tomar los permisos heredados y eliminar los permisos específicos de un rol/organización/usuario al propio contenido.
<param name="permission">inherit</param>
17/07/2020 Se agrega el parámetro "orgType" el cual permitirá filtra las organizaciones por tipo de organización especifico.
<param name="orgType">Código del tipo de organización</param>