X-Git-Url: https://git.argeo.org/?p=gpl%2Fargeo-suite.git;a=blobdiff_plain;f=org.argeo.api.app%2Fsrc%2Forg%2Fargeo%2Fapi%2Fapp%2FSuiteRole.java;fp=org.argeo.api.app%2Fsrc%2Forg%2Fargeo%2Fapi%2Fapp%2FSuiteRole.java;h=07f2499d256c0dd56e7bf24c82952c43624d5507;hp=0000000000000000000000000000000000000000;hb=ddc605514409368c46a8dadbbd914c4b1e61596a;hpb=db14c82991d4e17c45b2a5789dd94a6a839f5eaa diff --git a/org.argeo.api.app/src/org/argeo/api/app/SuiteRole.java b/org.argeo.api.app/src/org/argeo/api/app/SuiteRole.java new file mode 100644 index 0000000..07f2499 --- /dev/null +++ b/org.argeo.api.app/src/org/argeo/api/app/SuiteRole.java @@ -0,0 +1,47 @@ +package org.argeo.api.app; + +import javax.xml.namespace.QName; + +import org.argeo.api.acr.ArgeoNamespace; +import org.argeo.api.acr.ContentName; +import org.argeo.api.acr.ldap.LdapAttr; +import org.argeo.api.cms.CmsConstants; +import org.argeo.api.cms.auth.SystemRole; + +/** Standard suite system roles. */ +public enum SuiteRole implements SystemRole { + /** An external person who has read access to part of the information. */ + observer, + /** An active coworker. */ + coworker, + /** Someone who is allowed validate and publish information. */ + publisher, + /** Someone with manager status within an organisation. Does not necessarily give more rights. */ + manager, + // + ; + + private final static String QUALIFIER = "app."; + + private final ContentName name; + + SuiteRole() { + name = new ContentName(ArgeoNamespace.ROLE_NAMESPACE_URI, QUALIFIER + name()); + } + + @Override + public QName qName() { + return name; + } + + @Deprecated + private String getRolePrefix() { + return "org.argeo.suite"; + } + + @Deprecated + public String dn() { + return new StringBuilder(LdapAttr.cn.name()).append("=").append(getRolePrefix()).append(".").append(name()) + .append(",").append(CmsConstants.SYSTEM_ROLES_BASEDN).toString(); + } +}