Entrades amb etiqueta permissions .

Cómo gestionar permisos en nuestros portlets

Data de publicació 03/02/16 14:58

Algo realmente importante a tener en cuenta cuando creamos nuestros portlets con Liferay es cómo gestionar el acceso a los diferentes recursos. La gestión de permisos es algo básico si queremos que algunos roles puedan realizar ciertas acciones pero no otras. En este post vamos a hablar de como integrar los permisos y recursos de nuestros portlets con el sistema de permisos de Liferay.

Primero de todo tenemos crear el archivo default.xml en la carpeta docroot/WEB-INF/src/resource-actions. En este archivo definiremos, para nuestro modelo de datos, que permisos aplicaremos a qué recursos.

Este archivo tiene este aspecto:

<?xml version="1.0"?>
<!DOCTYPE resource-action-mapping PUBLIC "-//Liferay//DTD Resource Action Mapping 6.2.0//EN" 
"http://www.liferay.com/dtd/liferay-resource-action- mapping_6_2_0.dtd">

<resource-action-mapping>
    <portlet-resource>
        <portlet-name>guestbook</portlet-name>
        <permissions>
            <supports>
                <action-key>ADD_TO_PAGE</action-key>
                ...
            </supports>
            <site-member-defaults>
                <action-key>VIEW</action-key>
            </site-member-defaults>
            <guest-defaults>
                <action-key>VIEW</action-key>
            </guest-defaults>
            <guest-unsupported />
        </permissions>
    </portlet-resource>

    <model-resource>
        <model-name>com.liferay.docs.guestbook.model</model-name>
        <portlet-ref>
            <portlet-name>guestbook</portlet-name>
        </portlet-ref>
        <permissions>
        <supports>
            <action-key>ADD_GUESTBOOK</action-key>
            ...
        </supports>
        <site-member-defaults>
            <action-key>ADD_ENTRY</action-key>
        </site-member-defaults>
        <guest-defaults />
        <guest-unsupported>
            <action-key>ADD_GUESTBOOK</action-key>
            ...
        </guest-unsupported>
        </permissions>
    </model-resource>
</resource-action-mapping>

En este archivo definimos las acciones soportadas por cada uno de nuestros portlets (bloques <portlet-resource/>, pueden existir varios) y de nuestras entidades (bloques <model-resource/>, pueden existir varios), así como los permisos por defecto de los miembros del site o del usuario invitado, etc.

Además de crear este archivo, deberemos insertar esta linea en el archivo docroot/WEB-INF/src/portlet.properties (crearlo si aun no existe):

resource.actions.configs=resource-actions/default.xml

voilà! Una vez compilado y desplegado en nuestro servidor de aplicaciones ya podemos acceder al panel de control de Liferay y dar o quitar permisos a lo roles que creamos conveniente.

Solo nos faltaría comprobar antes de realizar una acción (por ejemplo, añadir un Guestbook) que alguno de los roles del usuario contienen el permiso para realizar dicha acción... pero eso mejor lo dejamos para otro dia  ;-)

Bloggers recents Bloggers recents

Oscar Rodríguez
Apunts: 9
Estrelles: 2
Data: 28/09/16
David Berruezo
Apunts: 14
Estrelles: 1
Data: 22/07/16
Javi Martín
Apunts: 2
Estrelles: 1
Data: 20/05/16
Javier Torres
Apunts: 5
Estrelles: 3
Data: 11/04/16
Sergi Mingueza
Apunts: 4
Estrelles: 1
Data: 19/10/15
Matilde Gallardo
Apunts: 1
Estrelles: 0
Data: 26/02/15
Adrià Vilà
Apunts: 4
Estrelles: 4
Data: 31/08/14
Elena Ruiz
Apunts: 1
Estrelles: 2
Data: 13/03/14