Saber si un permiso es heredado en un WS con Javascript

cancel
Showing results for 
Search instead for 
Did you mean: 
palba
Member II

Saber si un permiso es heredado en un WS con Javascript

Hola.

Al obtener los permisos de un espacio con:

folder.permissions

obtengo la cadena:

"ALLOWED;test1;Collaborator,ALLOWED;test2;Collaborator,ALLOWED;GROUP_EVERYONE;Consumer"

¿Hay alguna forma de sabe si el rol "Collaborator" del usuario "test1" está aplicado directamente a este espacio, o bien está heredado del espacio padre?

Gracias por adelantado
5 Replies
cristinamr
Advanced

Re: Saber si un permiso es heredado en un WS con Javascript

Uhmmm… Se me ocurre es que pruebes a pasarle la función listSiteRoles() que devuelve los roles asociados a ese espacio (función disponible a partir de la 3.0).  Si está asociado es que es de ese espacio, sino es que lo hereda.

Un saludo.

PD: Se me olvidaba pasarte los enlaces, aquí tienes el de la wiki para que mires según la versión que tengas Smiley Wink
--
VenziaIT: helping companies since 2005! Our ECM products: AQuA & Seidoc
palba
Member II

Re: Saber si un permiso es heredado en un WS con Javascript

Muchas gracias por responder, CristinaMR, pero me temo que no te sigo…

Leyendo la documentación, la función listSiteRoles() es del servicio "siteService". Por lo tanto puedo llamarla así:

siteService.listSiteRoles()

Esto me devuelve un array con los roles posibles en el sistema:

% siteService.listSiteRoles()[0]
SiteManager
% siteService.listSiteRoles()[1]
SiteCollaborator
% siteService.listSiteRoles()[2]
SiteContributor
% siteService.listSiteRoles()[3]
SiteConsumer


Pero esto no me da los roles asociados al espacio. Es más, no puedo especificar un espacio, esta función es a nivel de todo el site.

Así que supongo que te he entendido mal… ¿podrías aclararme a qué te refieres?

Muchas gracias Smiley Happy
cristinamr
Advanced

Re: Saber si un permiso es heredado en un WS con Javascript

Wops, disculpa error mío  Smiley Surprisedops:  (lo entendí mal). Mira, para ver los permisos que tiene un espacio asociado existe en la API de Javascript esta función:

String[] getPermissions()
Returns a String[] of the permissions attached to a node. Strings returned are of the format [ALLOWED|DENIED];[USERNAME|GROUPNAME];PERMISSION for example ALLOWED;kevinr;Consumer so can be easily tokenized on the ';' character.

Es decir, esa función te devuelve un array con el formato que te indica. Además, he encontrado este post, ojealo porque si tienes que extraer qué permiso tiene asociado ese espacio creo que te vendrá bien.

Haz una pequeña prueba y nos comentas si te va bien Smiley Wink

Un saludo.
--
VenziaIT: helping companies since 2005! Our ECM products: AQuA & Seidoc
palba
Member II

Re: Saber si un permiso es heredado en un WS con Javascript

Esa cadena de permisos ya la tengo (la función que comentas es equivalente a obtenerlos con folder.permissions).

Mi problema es que no sé si esos permisos se han aplicado directamente al espacio, o son heredados (se han aplicado al espacio padre), y necesito saberlo.
cristinamr
Advanced

Re: Saber si un permiso es heredado en un WS con Javascript

Buff.. La verdad es que he tocado poco este tema  Smiley Indifferent  Uhm, me suena que haya una función que se llama hasAspect a la que le pasas un aspecto y te devuelve un true o false si tiene el nodo ese aspecto asociado. En base a esto, no sé si sería viable preguntar por el aspecto heredable (¿inheritance?) y si lo tiene asociado, es porque puede heredar permisos del padre. Otra cosa no se me ocurre  Smiley Sad

A ver si alguien de la comunidad que lo haya trabajado con este aspecto puede comentarte más concretamente.

Un saludo.
--
VenziaIT: helping companies since 2005! Our ECM products: AQuA & Seidoc