Última actualización el
4 may. 2021
Pregunta / Síntomas
¿Cómo puedo comprobar si un usuario tiene privilegios para realizar una acción específica?
Respuesta/resolución
Para comprobar si un usuario tiene acceso de escritura a una página:
public boolean hasWriteAccess(Node pageNode, Session userSession) lanza RepositoryException { String path = pageNode.getPath(); prueba { userSession.checkPermission(path, "add_node,set_property"); si(pageNode.hasNode(JcrConstants.JCR_CONTENT)) { String contentNodePath = ruta + "/" + "jcr:content"; userSession.checkPermission(contentNodePath, "add_node,set_property"); }} catch(java.security.AccessControlException e) { return false; } return true; }
Para comprobar si un usuario puede activar páginas:
usuario final u = resourceResolver.adaptTo(User.class); // alternativamente: usuario final u = SecurityUtil.resolveUser(session); return u.hasPermission(Replicator.REPLICATION_PERMISSION);
Referencia
Se aplica a
CQ5.1, CQ5.2