You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by pa...@apache.org on 2019/06/26 09:46:48 UTC
[sling-org-apache-sling-jcr-repoinit] branch master updated:
SLING-8535: make register privilege work when privilege already exists.
This is an automated email from the ASF dual-hosted git repository.
pauls pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-jcr-repoinit.git
The following commit(s) were added to refs/heads/master by this push:
new 62e255f SLING-8535: make register privilege work when privilege already exists.
62e255f is described below
commit 62e255f517971eca48b7058e5f03de717077e793
Author: Karl Pauls <ka...@gmail.com>
AuthorDate: Wed Jun 26 11:46:40 2019 +0200
SLING-8535: make register privilege work when privilege already exists.
---
.../sling/jcr/repoinit/impl/PrivilegeVisitor.java | 17 ++++++++++++++---
1 file changed, 14 insertions(+), 3 deletions(-)
diff --git a/src/main/java/org/apache/sling/jcr/repoinit/impl/PrivilegeVisitor.java b/src/main/java/org/apache/sling/jcr/repoinit/impl/PrivilegeVisitor.java
index ecbb0d6..a86fc7a 100644
--- a/src/main/java/org/apache/sling/jcr/repoinit/impl/PrivilegeVisitor.java
+++ b/src/main/java/org/apache/sling/jcr/repoinit/impl/PrivilegeVisitor.java
@@ -21,6 +21,8 @@ import org.apache.jackrabbit.api.JackrabbitWorkspace;
import org.apache.sling.repoinit.parser.operations.RegisterPrivilege;
import javax.jcr.Session;
+import javax.jcr.security.AccessControlException;
+import javax.jcr.security.Privilege;
public class PrivilegeVisitor extends DoNothingVisitor {
public PrivilegeVisitor(Session session) {
@@ -30,10 +32,19 @@ public class PrivilegeVisitor extends DoNothingVisitor {
@Override
public void visitRegisterPrivilege(RegisterPrivilege rp) {
try {
- ((JackrabbitWorkspace) session.getWorkspace()).getPrivilegeManager()
- .registerPrivilege(rp.getPrivilegeName(), rp.isAbstract(), rp.getDeclaredAggregateNames().toArray(new String[0]));
+ Privilege priv = ((JackrabbitWorkspace) session.getWorkspace()).getPrivilegeManager().getPrivilege(rp.getPrivilegeName());
+ log.info("Privilege {} already exists: {}, no changes made.", rp.getPrivilegeName(), priv);
} catch (Exception e) {
- report(e, "Unable to register privilege from: " + rp);
+ if (e instanceof AccessControlException) {
+ try {
+ ((JackrabbitWorkspace) session.getWorkspace()).getPrivilegeManager()
+ .registerPrivilege(rp.getPrivilegeName(), rp.isAbstract(), rp.getDeclaredAggregateNames().toArray(new String[0]));
+ } catch (Exception ex) {
+ report(ex, "Unable to register privilege from: " + rp);
+ }
+ } else {
+ report(e, "Unable to register privilege from: " + rp);
+ }
}
}
}