]> git.argeo.org Git - lgpl/argeo-commons.git/blob - auth/RoleNameUtils.java
Prepare next development cycle
[lgpl/argeo-commons.git] / auth / RoleNameUtils.java
1 package org.argeo.api.cms.auth;
2
3 import static org.argeo.api.acr.RuntimeNamespaceContext.getNamespaceContext;
4
5 import javax.xml.namespace.QName;
6
7 import org.argeo.api.acr.ArgeoNamespace;
8 import org.argeo.api.acr.NamespaceUtils;
9 import org.argeo.api.acr.ldap.LdapNameUtils;
10
11 /** Simplifies analysis of system roles. */
12 public class RoleNameUtils {
13 public static String getLastRdnValue(String dn) {
14 return LdapNameUtils.getLastRdnValue(dn);
15 // // we don't use LdapName for portability with Android
16 // // TODO make it more robust
17 // String[] parts = dn.split(",");
18 // String[] rdn = parts[0].split("=");
19 // return rdn[1];
20 }
21
22 public static QName getLastRdnAsName(String dn) {
23 String cn = getLastRdnValue(dn);
24 QName roleName = NamespaceUtils.parsePrefixedName(getNamespaceContext(), cn);
25 return roleName;
26 }
27
28 public static boolean isSystemRole(QName roleName) {
29 return roleName.getNamespaceURI().equals(ArgeoNamespace.ROLE_NAMESPACE_URI);
30 }
31
32 public static String getParent(String dn) {
33 int index = dn.indexOf(',');
34 return dn.substring(index + 1);
35 }
36
37 /** Up two levels. */
38 public static String getContext(String dn) {
39 return getParent(getParent(dn));
40 }
41 }