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

Ver 5.2 API para el usuario

Se aplica a

CQ5.1, CQ5.2

Esta obra está autorizada con arreglo a la licencia de Reconocimiento-NoComercial-CompartirIgual 3.0 Unported de Creative Commons.  Los términos de Creative Commons no cubren las publicaciones en Twitter™ y Facebook.

Avisos legales   |   Política de privacidad en línea