X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.cms%2Fsrc%2Forg%2Fargeo%2Fcms%2Fauth%2FRoleNameUtils.java;h=a281c2f7d3084a5e86e83524e78f628389edbdc4;hb=e023e9027edc0d734d11cb759259eaebb6d68bc9;hp=bf91f39413c84bba1a8181d7f0cb5032d18a33ca;hpb=1894ef7613f658b8b0d8104a108d92b756c0cdb3;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.cms/src/org/argeo/cms/auth/RoleNameUtils.java b/org.argeo.cms/src/org/argeo/cms/auth/RoleNameUtils.java index bf91f3941..a281c2f7d 100644 --- a/org.argeo.cms/src/org/argeo/cms/auth/RoleNameUtils.java +++ b/org.argeo.cms/src/org/argeo/cms/auth/RoleNameUtils.java @@ -1,25 +1,41 @@ package org.argeo.cms.auth; +import static org.argeo.api.acr.RuntimeNamespaceContext.getNamespaceContext; + +import javax.xml.namespace.QName; + +import org.argeo.api.acr.ArgeoNamespace; +import org.argeo.api.acr.NamespaceUtils; +import org.argeo.cms.directory.ldap.LdapNameUtils; + +/** Simplifies analysis of system roles. */ public class RoleNameUtils { + public static String getLastRdnValue(String dn) { + return LdapNameUtils.getLastRdnValue(dn); +// // we don't use LdapName for portability with Android +// // TODO make it more robust +// String[] parts = dn.split(","); +// String[] rdn = parts[0].split("="); +// return rdn[1]; + } + + public static QName getLastRdnAsName(String dn) { + String cn = getLastRdnValue(dn); + QName roleName = NamespaceUtils.parsePrefixedName(getNamespaceContext(), cn); + return roleName; + } - /* - * UTILITIES - */ - public final static String getLastRdnValue(String dn) { - // we don't use LdapName for portability with Android - // TODO make it more robust - String[] parts = dn.split(","); - String[] rdn = parts[0].split("="); - return rdn[1]; + public static boolean isSystemRole(QName roleName) { + return roleName.getNamespaceURI().equals(ArgeoNamespace.ROLE_NAMESPACE_URI); } - public final static String getParent(String dn) { + public static String getParent(String dn) { int index = dn.indexOf(','); return dn.substring(index + 1); } /** Up two levels. */ - public final static String getContext(String dn) { + public static String getContext(String dn) { return getParent(getParent(dn)); } }