Proyecto

General

Perfil

Asignar permisos (AssignPermissions)

Información

Autor David Henriquez.":mailto:
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.

Además, existen 7 situaciones diferentes, según el contenido del RoleLink.
  1. Solo usuarios
  2. Solo roles
  3. Solo organizaciones
  4. Usuarios y Roles
  5. Usuarios y Organizaciones
  6. Roles y Organizaciones
  7. 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>

Volver al inicio
Agregar imagen desde el portapapeles (Tamaño máximo: 10 MB)