You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by an...@apache.org on 2013/05/03 16:32:02 UTC
svn commit: r1478811 -
/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/permission/Permissions.java
Author: angela
Date: Fri May 3 14:32:01 2013
New Revision: 1478811
URL: http://svn.apache.org/r1478811
Log:
OAK-527: permissions
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/permission/Permissions.java
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/permission/Permissions.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/permission/Permissions.java?rev=1478811&r1=1478810&r2=1478811&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/permission/Permissions.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/permission/Permissions.java Fri May 3 14:32:01 2013
@@ -178,6 +178,24 @@ public final class Permissions {
return permissions & ~otherPermissions;
}
+ /**
+ * Returns the permissions that correspond the given jcr actions such as
+ * specified in {@link Session#hasPermission(String, String)}. Note that
+ * in addition to the regular JCR actions ({@link Session#ACTION_READ},
+ * {@link Session#ACTION_ADD_NODE}, {@link Session#ACTION_REMOVE} and
+ * {@link Session#ACTION_SET_PROPERTY}) the string may also contain
+ * the names of all permissions defined by this class.
+ *
+ * @param jcrActions A comma separated string of JCR actions and permission
+ * names.
+ * @param location The tree location for which the permissions should be
+ * calculated.
+ * @param isAccessControlContent Flag to mark the given location as access
+ * control content.
+ * @return The permissions.
+ * @throws IllegalArgumentException If the string contains unknown actions
+ * or permission names.
+ */
public static long getPermissions(String jcrActions, TreeLocation location,
boolean isAccessControlContent) {
Set<String> actions = new HashSet<String>(Arrays.asList(jcrActions.split(",")));
@@ -223,6 +241,13 @@ public final class Permissions {
}
}
}
+
+ for (Map.Entry<Long, String> entry : PERMISSION_NAMES.entrySet()) {
+ if (actions.remove(entry.getValue())) {
+ permissions |= entry.getKey();
+ }
+ }
+
if (!actions.isEmpty()) {
throw new IllegalArgumentException("Unknown actions: " + actions);
}