private final String userObjectClass, userBase, groupObjectClass, groupBase;
private final boolean readOnly;
+ private final boolean disabled;
private final URI uri;
private UserAdmin externalRoles;
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. */
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);
// 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);
}
}
return user;
}
- @SuppressWarnings("unchecked")
@Override
public Role[] getRoles(String filter) throws InvalidSyntaxException {
UserDirectoryWorkingCopy wc = getWorkingCopy();
return uri;
}
- // protected List<String> getIndexedUserProperties() {
- // return indexedUserProperties;
- // }
- //
- // protected void setIndexedUserProperties(List<String>
- // indexedUserProperties) {
- // this.indexedUserProperties = indexedUserProperties;
- // }
-
private static boolean readOnlyDefault(URI uri) {
if (uri == null)
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(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;
+ return true;// read only by default
}
public boolean isReadOnly() {
return readOnly;
}
+ public boolean isDisabled() {
+ return disabled;
+ }
+
protected UserAdmin getExternalRoles() {
return externalRoles;
}