Buenas,
Estoy intentando gestionar los permisos sobre documentos/expedientes utilizando CMIS, para los casos de escritura no hay problema, ya que existe una gran variedad de permisos y puedo por ejemplo consultar si el padre de un nodo tiene permisos de crear documento (algo así como "parentFolder.getAllowableActions().getAllowableActions().contains(Action.CAN_CREATE_DOCUMENT)" y no me hace falta realizar más comprobaciones.
El problema me surge cuando quiero tratar los permisos de manera más sencilla, por ejemplo, comprobar simplemente si el usuario tiene permisos de lectura sobre un nodo para poder recuperarlo, ya que existen permisos como canGetProperties, CanGetContentStream, canGetObjectRelationships, etc. y tendría que hacer muchas comprobaciones para recuperar partes de la información de un nodo, pero no existe ningún permiso para si puede recuperarlo o no simplemente
Por lo que estuve mirando existen los ACL que son uno o más ACE, que vienen a ser permisos personalizados si no me equivoco, pero no encontré ningún ejemplo o explicación de cómo funcionan más allá de la explicación de la propagación y capabilityACL (lo cual tampoco me queda del todo claro como funciona).
Mi pregunta es... ¿Existe alguna manera sencilla de manejar los permisos para que, si un usuario quiere recuperar un nodo, no haga falta comprobar unos 6 o 7 permisos diferentes como mínimo? ¿Es necesario hacer uso de los ACL? de ser así ¿Existe alguna guía práctica de cómo gestionarlos?
Por otro lado, otra duda que me surge es con las versiones, las cuales funcionan con el checkIn y checkOut por lo que he podido leer, pero no me ha quedado claro como puedo crear nuevas versiones, acceder a alguna versión concreta o bloquear el nodo
Un saludo y muchas gracias por la ayuda