Domanda/Sintomi

Come posso verificare se un utente ha il privilegio di eseguire una determinata azione?

Risposta / Risoluzione

Per verificare se un utente ha accesso in scrittura ad una pagina:

public boolean hasWriteAccess(Node pageNode, Session userSession) throws RepositoryException { String path = pageNode.getPath(); try { userSession.checkPermission(path, "add_node,set_property"); if(pageNode.hasNode(JcrConstants.JCR_CONTENT)) { String contentNodePath = path + "/" + "jcr:content"; userSession.checkPermission(contentNodePath, "add_node,set_property"); } } catch(java.security.AccessControlException e) { return false; } return true; }

Per verificare se un utente può attivare le pagine:

final User u = resourceResolver.adaptTo(User.class); // alternatively: final User u = SecurityUtil.resolveUser(session); return u.hasPermission(Replicator.REPLICATION_PERMISSION);

Riferimento

Vedi 5.2 API per l'utente

Prodotti interessati:

CQ5.1, CQ5.2

Questo prodotto è concesso in licenza in base alla licenza di Attribuzione-Non commerciale-Condividi allo stesso modo 3.0 Unported di Creative Commons.  I post su Twitter™ e Facebook non sono coperti dai termini di Creative Commons.

Note legali   |   Informativa sulla privacy online