Using JackrabbitAccessControlList api we can apply permission.
Sample code:
//Defining Privilages array to store type of permission.
Privilege privileges[] = new Privilege[2];
try {
UserManager usermanager = AccessControlUtil.getUserManager(session);
//user Id or Group Id
Authorizable authorizable = usermanager.getAuthorizable(userID);
AccessControlManager accessControlManager = session.getAccessControlManager();
//Resource path to which we need to apply permissions.
AccessControlPolicyIterator policyIterator = accessControlManager.getApplicablePolicies("/content/geometrixx/en");
JackrabbitAccessControlList acl;
try {
acl = (JackrabbitAccessControlList) policyIterator.nextAccessControlPolicy();
} catch (NoSuchElementException nse) {
LOG.info(nse.getMessage());
acl = (JackrabbitAccessControlList) accessControlManager.getPolicies("/content/geometrixx/en")[0];
}
privileges[0] = accessControlManager.privilegeFromName(Privilege.JCR_READ);
privileges[1] = accessControlManager.privilegeFromName(Privilege.JCR_WRITE);
boolean isAllow = true; // true to allow, false for deney
acl.addEntry(authorizable.getPrincipal(), privileges, isAllow);
accessControlManager.setPolicy("/content/geometrixx/en", acl);
session.save();
}catch (Exception e) {
LOG.error("Exception : {}",e);
}
Sample code:
//Defining Privilages array to store type of permission.
Privilege privileges[] = new Privilege[2];
try {
UserManager usermanager = AccessControlUtil.getUserManager(session);
//user Id or Group Id
Authorizable authorizable = usermanager.getAuthorizable(userID);
AccessControlManager accessControlManager = session.getAccessControlManager();
//Resource path to which we need to apply permissions.
AccessControlPolicyIterator policyIterator = accessControlManager.getApplicablePolicies("/content/geometrixx/en");
JackrabbitAccessControlList acl;
try {
acl = (JackrabbitAccessControlList) policyIterator.nextAccessControlPolicy();
} catch (NoSuchElementException nse) {
LOG.info(nse.getMessage());
acl = (JackrabbitAccessControlList) accessControlManager.getPolicies("/content/geometrixx/en")[0];
}
privileges[0] = accessControlManager.privilegeFromName(Privilege.JCR_READ);
privileges[1] = accessControlManager.privilegeFromName(Privilege.JCR_WRITE);
boolean isAllow = true; // true to allow, false for deney
acl.addEntry(authorizable.getPrincipal(), privileges, isAllow);
accessControlManager.setPolicy("/content/geometrixx/en", acl);
session.save();
}catch (Exception e) {
LOG.error("Exception : {}",e);
}
No comments:
Post a Comment