X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;ds=sidebyside;f=org.argeo.enterprise%2Fsrc%2Forg%2Fargeo%2Fosgi%2Fuseradmin%2FAbstractUserDirectory.java;h=385ea740e64f6df46227630e2cd053aed50b7302;hb=31d7eccd2b0effdadaaa5b6349e5b6b6ea753e3c;hp=d3c7d6246af6ef509a24c2ecc1d82940947d52d7;hpb=5d39143d7ea77173300af60264d191101e310902;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.enterprise/src/org/argeo/osgi/useradmin/AbstractUserDirectory.java b/org.argeo.enterprise/src/org/argeo/osgi/useradmin/AbstractUserDirectory.java index d3c7d6246..385ea740e 100644 --- a/org.argeo.enterprise/src/org/argeo/osgi/useradmin/AbstractUserDirectory.java +++ b/org.argeo.enterprise/src/org/argeo/osgi/useradmin/AbstractUserDirectory.java @@ -54,6 +54,7 @@ public abstract class AbstractUserDirectory implements UserAdmin, UserDirectory private final String userObjectClass, userBase, groupObjectClass, groupBase; private final boolean readOnly; + private final boolean disabled; private final URI uri; private UserAdmin externalRoles; @@ -108,6 +109,11 @@ public abstract class AbstractUserDirectory implements UserAdmin, UserDirectory properties.put(UserAdminConf.readOnly.name(), Boolean.toString(readOnly)); } else readOnly = new Boolean(readOnlyStr); + String disabledStr = UserAdminConf.disabled.getValue(properties); + if (disabledStr != null) + disabled = new Boolean(disabledStr); + else + disabled = false; } /** Returns the groups this user is a direct member of. */ @@ -181,8 +187,8 @@ public abstract class AbstractUserDirectory implements UserAdmin, UserDirectory LdapName groupDn = new LdapName(value.toString()); DirectoryUser group = doGetRole(groupDn); allRoles.add(group); - if (log.isDebugEnabled()) - log.debug("Add memberOf " + groupDn); + if (log.isTraceEnabled()) + log.trace("Add memberOf " + groupDn); } } catch (Exception e) { throw new UserDirectoryException("Cannot get memberOf groups for " + user, e); @@ -192,8 +198,8 @@ public abstract class AbstractUserDirectory implements UserAdmin, UserDirectory // TODO check for loops DirectoryUser group = doGetRole(groupDn); allRoles.add(group); - if (log.isDebugEnabled()) - log.debug("Add direct group " + groupDn); + if (log.isTraceEnabled()) + log.trace("Add direct group " + groupDn); collectRoles(group, allRoles); } } @@ -226,7 +232,6 @@ public abstract class AbstractUserDirectory implements UserAdmin, UserDirectory return user; } - @SuppressWarnings("unchecked") @Override public Role[] getRoles(String filter) throws InvalidSyntaxException { UserDirectoryWorkingCopy wc = getWorkingCopy(); @@ -419,15 +424,17 @@ public abstract class AbstractUserDirectory implements UserAdmin, UserDirectory return true; if (uri.getScheme() == null) return false;// assume relative file to be writable - if (uri.getScheme().equals("file")) { + if (uri.getScheme().equals(UserAdminConf.SCHEME_FILE)) { File file = new File(uri); if (file.exists()) return !file.canWrite(); else return !file.getParentFile().canWrite(); - } else if (uri.getScheme().equals("ldap")) { + } else if (uri.getScheme().equals(UserAdminConf.SCHEME_LDAP)) { if (uri.getAuthority() != null)// assume writable if authenticated return false; + } else if (uri.getScheme().equals(UserAdminConf.SCHEME_OS)) { + return true; } return true;// read only by default } @@ -436,6 +443,10 @@ public abstract class AbstractUserDirectory implements UserAdmin, UserDirectory return readOnly; } + public boolean isDisabled() { + return disabled; + } + protected UserAdmin getExternalRoles() { return externalRoles; }