oracle.ifs.adk.user
Class UserManager


java.lang.Object

  |

  +--oracle.ifs.adk.user.UserManager


public final class UserManager
extends java.lang.Object

UserManager is an utility class to create and delete iFS users. Creating an iFS user involves creating a CredentialManager user, DirectoryUser, a home folder, a content quota, a primary user profile, an email profile, and associated objects. Values for the various options would be specified in a Hashtable. These Hashtable values would override the defaults found in the PropertyBundle, IFS.ADK.CreateUserDefinitions. If values are not specified, the defaults are used. Deleting an iFS user involves freeing the home folder, the CredentialManager user, DirectoryUser. There exists the option of freeing objects owned by the user or changing the ownership to a specified valid user. Values for the various options would be specifed in a Hashtable. Default values are specified in the javadoc below.


Field Summary
static java.lang.String ACL_BUNDLE_ALL_PUBLISHED
          No default.
static java.lang.String ACL_BUNDLE_FOR_ADMIN
          No default.
static java.lang.String ADMIN_ENABLED
          Defaults to FALSE.
static java.lang.String CAN_CHANGE_PASSWORD
          Defaults to TRUE.
static java.lang.String CHANGE_OWNER
          Delete user option - defaults to FALSE.
static java.lang.String CONTENT_QUOTA_ACL
          Defaults to Private.
static java.lang.String CONTENT_QUOTA_ALLOCATED_STORAGE
          Defaults to 25000000 bytes.
static java.lang.String CONTENT_QUOTA_ENABLED
          Defaults to FALSE.
static java.lang.String CONTENT_QUOTA_NAME
          If none specified, name is constructed from prefix + username + suffix.
static java.lang.String CONTENT_QUOTA_NAME_PREFIX
          No default.
static java.lang.String CONTENT_QUOTA_NAME_SUFFIX
          Defaults to ' Content Quota'.
static java.lang.String CREDENTIAL_MANAGER
          Defaults to 'DEFAULT' for which credential manager to use for access to the authentication engine.
static java.lang.String DEFAULT_ACLS
          Defaults to 'AclBundleAllPublished' for non-Admin and 'AclBundleForAdmin' for Admin users.
static java.lang.String DEFAULT_ACLS_BUNDLE_ACL
          Defaults to Published.
static java.lang.String DEFAULT_ACLS_BUNDLE_NAME
          If none specified, name is constructed from prefix + username + suffix.
static java.lang.String DEFAULT_ACLS_BUNDLE_NAME_PREFIX
          No default.
static java.lang.String DEFAULT_ACLS_BUNDLE_NAME_SUFFIX
          Defaults to ' DefaultACLs'.
static java.lang.String DIRECTORY_USER_ACL
          Defaults to Published.
static java.lang.String DISTINGUISHED_NAME
          If none specified, name is constructed from prefix + username + suffix.
static java.lang.String DISTINGUISHED_NAME_PREFIX
          No default.
static java.lang.String DISTINGUISHED_NAME_SUFFIX
          Defaults to installation value.
static java.lang.String EMAIL_ADDRESS
          If none specified, name is constructed from prefix + username + suffix.
static java.lang.String EMAIL_ADDRESS_PREFIX
          No default.
static java.lang.String EMAIL_ADDRESS_SUFFIX
          Defaults to installation value.
static java.lang.String EMAIL_SUBFOLDER_ACL
          Defaults to Private.
static java.lang.String EMAIL_SUBFOLDER_NAME
          Defaults to 'mail'.
static java.lang.String EMAIL_USER_PROFILE_ACL
          Defaults to Private.
static java.lang.String EMAIL_USER_PROFILE_NAME
          If none specified, name is constructed from prefix + username + suffix.
static java.lang.String EMAIL_USER_PROFILE_NAME_PREFIX
          No default.
static java.lang.String EMAIL_USER_PROFILE_NAME_SUFFIX
          Defaults to ' Email Profile'.
static java.lang.String FREE_CREDENTIAL_MANAGER_USER
          Delete user option - defaults to FALSE.
static java.lang.String FREE_HOME_FOLDER
          Delete user option - defaults to FALSE.
static java.lang.String HAS_CONTENT_QUOTA
          Defaults to TRUE.
static java.lang.String HAS_EMAIL
          Defaults to TRUE.
static java.lang.String HAS_HOME_FOLDER
          Defaults to TRUE.
static java.lang.String HAS_PRIMARY_USER_PROFILE
          Defaults to TRUE.
static java.lang.String HOME_FOLDER_ACL
          Defaults to Private.
static java.lang.String HOME_FOLDER_DESCRIPTION
          If none specified, name is constructed from prefix + username + suffix.
static java.lang.String HOME_FOLDER_DESCRIPTION_PREFIX
          No default.
static java.lang.String HOME_FOLDER_DESCRIPTION_SUFFIX
          Defaults to ''s home folder'.
static java.lang.String HOME_FOLDER_HAS_POLICY_BUNDLE
          Defaults to TRUE.
static java.lang.String HOME_FOLDER_NAME
          If none specified, name is constructed from prefix + username + suffix.
static java.lang.String HOME_FOLDER_NAME_PREFIX
          No default.
static java.lang.String HOME_FOLDER_NAME_SUFFIX
          No default.
static java.lang.String HOME_FOLDER_POLICY_BUNDLE_ACL
          Defaults to Published.
static java.lang.String HOME_FOLDER_POLICY_BUNDLE_NAME
          If none specified, name is constructed from prefix + username + suffix.
static java.lang.String HOME_FOLDER_POLICY_BUNDLE_NAME_PREFIX
          No default.
static java.lang.String HOME_FOLDER_POLICY_BUNDLE_NAME_SUFFIX
          Defaults to 'Policy Bundle for Homefolder and Inbox'.
static java.lang.String HOME_FOLDER_ROOT
          Defaults to '/home'.
static java.lang.String INBOX_ACL
          Defaults to Private.
static java.lang.String INBOX_NAME
          Defaults to 'inbox'.
static java.lang.String NEW_OWNER_USER_NAME
          Delete user option - no default.
static java.lang.String PASSWORD
          Password is required to be defined.
static java.lang.String PRIMARY_USER_PROFILE_ACL
          Defaults to Private.
static java.lang.String PRIMARY_USER_PROFILE_NAME
          If none specified, name is constructed from prefix + username + suffix.
static java.lang.String PRIMARY_USER_PROFILE_NAME_PREFIX
          No default.
static java.lang.String PRIMARY_USER_PROFILE_NAME_SUFFIX
          Defaults to ' Primary Profile'.
static java.lang.String REPLACE_CREDENTIAL_MANAGER_PASSWORD
          Defaults to FALSE.
static java.lang.String SHOULD_CREATE_CREDENTIAL_MANAGER_USER
          Defaults to TRUE.
static java.lang.String USERNAME
          UserName is required to be defined.
 
Constructor Summary
UserManager(LibrarySession sess)
          Construct UserManager object.
 
Method Summary
 DirectoryUser createUser(java.lang.String username, java.lang.String password, java.util.Hashtable options)
          Creates a new iFS user.
 void deleteUser(java.lang.String username, java.util.Hashtable options)
          Deletes an iFS user.
 java.util.Hashtable normalizeOptionsHashtable(java.util.Hashtable oldTable)
          Normalizes the options Hashtable so that the keys are all uppercase.
 

Field Detail


USERNAME


public static final java.lang.String USERNAME
UserName is required to be defined.

PASSWORD


public static final java.lang.String PASSWORD
Password is required to be defined.

SHOULD_CREATE_CREDENTIAL_MANAGER_USER


public static final java.lang.String SHOULD_CREATE_CREDENTIAL_MANAGER_USER
Defaults to TRUE.

REPLACE_CREDENTIAL_MANAGER_PASSWORD


public static final java.lang.String REPLACE_CREDENTIAL_MANAGER_PASSWORD
Defaults to FALSE. If using an existing credential manager user, set to TRUE to override the old password.

CREDENTIAL_MANAGER


public static final java.lang.String CREDENTIAL_MANAGER
Defaults to 'DEFAULT' for which credential manager to use for access to the authentication engine.

CAN_CHANGE_PASSWORD


public static final java.lang.String CAN_CHANGE_PASSWORD
Defaults to TRUE.

HAS_EMAIL


public static final java.lang.String HAS_EMAIL
Defaults to TRUE.

ADMIN_ENABLED


public static final java.lang.String ADMIN_ENABLED
Defaults to FALSE. Set to TRUE if user should have admin privileges.

HAS_PRIMARY_USER_PROFILE


public static final java.lang.String HAS_PRIMARY_USER_PROFILE
Defaults to TRUE.

HAS_HOME_FOLDER


public static final java.lang.String HAS_HOME_FOLDER
Defaults to TRUE.

HOME_FOLDER_ROOT


public static final java.lang.String HOME_FOLDER_ROOT
Defaults to '/home'.

HOME_FOLDER_HAS_POLICY_BUNDLE


public static final java.lang.String HOME_FOLDER_HAS_POLICY_BUNDLE
Defaults to TRUE. Admin privileges are required to free the home folder.

HAS_CONTENT_QUOTA


public static final java.lang.String HAS_CONTENT_QUOTA
Defaults to TRUE.

CONTENT_QUOTA_ENABLED


public static final java.lang.String CONTENT_QUOTA_ENABLED
Defaults to FALSE. Set to TRUE to enable the implemented content quota.

CONTENT_QUOTA_ALLOCATED_STORAGE


public static final java.lang.String CONTENT_QUOTA_ALLOCATED_STORAGE
Defaults to 25000000 bytes.

EMAIL_ADDRESS


public static final java.lang.String EMAIL_ADDRESS
If none specified, name is constructed from prefix + username + suffix.

DISTINGUISHED_NAME


public static final java.lang.String DISTINGUISHED_NAME
If none specified, name is constructed from prefix + username + suffix.

PRIMARY_USER_PROFILE_NAME


public static final java.lang.String PRIMARY_USER_PROFILE_NAME
If none specified, name is constructed from prefix + username + suffix.

EMAIL_USER_PROFILE_NAME


public static final java.lang.String EMAIL_USER_PROFILE_NAME
If none specified, name is constructed from prefix + username + suffix.

CONTENT_QUOTA_NAME


public static final java.lang.String CONTENT_QUOTA_NAME
If none specified, name is constructed from prefix + username + suffix.

HOME_FOLDER_NAME


public static final java.lang.String HOME_FOLDER_NAME
If none specified, name is constructed from prefix + username + suffix.

HOME_FOLDER_DESCRIPTION


public static final java.lang.String HOME_FOLDER_DESCRIPTION
If none specified, name is constructed from prefix + username + suffix.

DEFAULT_ACLS_BUNDLE_NAME


public static final java.lang.String DEFAULT_ACLS_BUNDLE_NAME
If none specified, name is constructed from prefix + username + suffix.

HOME_FOLDER_POLICY_BUNDLE_NAME


public static final java.lang.String HOME_FOLDER_POLICY_BUNDLE_NAME
If none specified, name is constructed from prefix + username + suffix.

DISTINGUISHED_NAME_PREFIX


public static final java.lang.String DISTINGUISHED_NAME_PREFIX
No default.

PRIMARY_USER_PROFILE_NAME_PREFIX


public static final java.lang.String PRIMARY_USER_PROFILE_NAME_PREFIX
No default.

EMAIL_USER_PROFILE_NAME_PREFIX


public static final java.lang.String EMAIL_USER_PROFILE_NAME_PREFIX
No default.

CONTENT_QUOTA_NAME_PREFIX


public static final java.lang.String CONTENT_QUOTA_NAME_PREFIX
No default.

HOME_FOLDER_NAME_PREFIX


public static final java.lang.String HOME_FOLDER_NAME_PREFIX
No default.

HOME_FOLDER_DESCRIPTION_PREFIX


public static final java.lang.String HOME_FOLDER_DESCRIPTION_PREFIX
No default.

DEFAULT_ACLS_BUNDLE_NAME_PREFIX


public static final java.lang.String DEFAULT_ACLS_BUNDLE_NAME_PREFIX
No default.

HOME_FOLDER_POLICY_BUNDLE_NAME_PREFIX


public static final java.lang.String HOME_FOLDER_POLICY_BUNDLE_NAME_PREFIX
No default.

EMAIL_ADDRESS_PREFIX


public static final java.lang.String EMAIL_ADDRESS_PREFIX
No default.

DISTINGUISHED_NAME_SUFFIX


public static final java.lang.String DISTINGUISHED_NAME_SUFFIX
Defaults to installation value.

PRIMARY_USER_PROFILE_NAME_SUFFIX


public static final java.lang.String PRIMARY_USER_PROFILE_NAME_SUFFIX
Defaults to ' Primary Profile'.

EMAIL_USER_PROFILE_NAME_SUFFIX


public static final java.lang.String EMAIL_USER_PROFILE_NAME_SUFFIX
Defaults to ' Email Profile'.

CONTENT_QUOTA_NAME_SUFFIX


public static final java.lang.String CONTENT_QUOTA_NAME_SUFFIX
Defaults to ' Content Quota'.

HOME_FOLDER_NAME_SUFFIX


public static final java.lang.String HOME_FOLDER_NAME_SUFFIX
No default.

HOME_FOLDER_DESCRIPTION_SUFFIX


public static final java.lang.String HOME_FOLDER_DESCRIPTION_SUFFIX
Defaults to ''s home folder'.

DEFAULT_ACLS_BUNDLE_NAME_SUFFIX


public static final java.lang.String DEFAULT_ACLS_BUNDLE_NAME_SUFFIX
Defaults to ' DefaultACLs'.

HOME_FOLDER_POLICY_BUNDLE_NAME_SUFFIX


public static final java.lang.String HOME_FOLDER_POLICY_BUNDLE_NAME_SUFFIX
Defaults to 'Policy Bundle for Homefolder and Inbox'.

EMAIL_ADDRESS_SUFFIX


public static final java.lang.String EMAIL_ADDRESS_SUFFIX
Defaults to installation value.

EMAIL_SUBFOLDER_NAME


public static final java.lang.String EMAIL_SUBFOLDER_NAME
Defaults to 'mail'.

INBOX_NAME


public static final java.lang.String INBOX_NAME
Defaults to 'inbox'.

DIRECTORY_USER_ACL


public static final java.lang.String DIRECTORY_USER_ACL
Defaults to Published.

HOME_FOLDER_POLICY_BUNDLE_ACL


public static final java.lang.String HOME_FOLDER_POLICY_BUNDLE_ACL
Defaults to Published.

HOME_FOLDER_ACL


public static final java.lang.String HOME_FOLDER_ACL
Defaults to Private.

DEFAULT_ACLS_BUNDLE_ACL


public static final java.lang.String DEFAULT_ACLS_BUNDLE_ACL
Defaults to Published.

CONTENT_QUOTA_ACL


public static final java.lang.String CONTENT_QUOTA_ACL
Defaults to Private.

PRIMARY_USER_PROFILE_ACL


public static final java.lang.String PRIMARY_USER_PROFILE_ACL
Defaults to Private.

EMAIL_USER_PROFILE_ACL


public static final java.lang.String EMAIL_USER_PROFILE_ACL
Defaults to Private.

EMAIL_SUBFOLDER_ACL


public static final java.lang.String EMAIL_SUBFOLDER_ACL
Defaults to Private.

INBOX_ACL


public static final java.lang.String INBOX_ACL
Defaults to Private.

DEFAULT_ACLS


public static final java.lang.String DEFAULT_ACLS
Defaults to 'AclBundleAllPublished' for non-Admin and 'AclBundleForAdmin' for Admin users.

FREE_CREDENTIAL_MANAGER_USER


public static final java.lang.String FREE_CREDENTIAL_MANAGER_USER
Delete user option - defaults to FALSE.

FREE_HOME_FOLDER


public static final java.lang.String FREE_HOME_FOLDER
Delete user option - defaults to FALSE.

CHANGE_OWNER


public static final java.lang.String CHANGE_OWNER
Delete user option - defaults to FALSE.

NEW_OWNER_USER_NAME


public static final java.lang.String NEW_OWNER_USER_NAME
Delete user option - no default.

ACL_BUNDLE_ALL_PUBLISHED


public static final java.lang.String ACL_BUNDLE_ALL_PUBLISHED
No default.

ACL_BUNDLE_FOR_ADMIN


public static final java.lang.String ACL_BUNDLE_FOR_ADMIN
No default.
Constructor Detail

UserManager


public UserManager(LibrarySession sess)
            throws IfsException
Construct UserManager object.
Parameters:
sess - LibrarySession on which to manage users.
Method Detail

createUser


public DirectoryUser createUser(java.lang.String username,
                                java.lang.String password,
                                java.util.Hashtable options)
                         throws IfsException
Creates a new iFS user.
Parameters:
username - user name; can also be specified in the Hashtable as option UserName
password - password; can also be specified in the Hashtable as option Password
options - Hashtable of options which override the options contained in the named PropertyBundle IFS.ADK.CreateUserDefinitions.
Returns:
The newly created user.
Throws:
IfsException - if the operation fails

deleteUser


public void deleteUser(java.lang.String username,
                       java.util.Hashtable options)
                throws IfsException
Deletes an iFS user.
Parameters:
username - user name; can also be specified in the Hashtable as option UserName
options - Hashtable of options which override the options contianed in the named PropertyBundle IFS.ADK.CreateUserDefinitions.
Throws:
if - invalid args are specified

normalizeOptionsHashtable


public java.util.Hashtable normalizeOptionsHashtable(java.util.Hashtable oldTable)
                                              throws IfsException
Normalizes the options Hashtable so that the keys are all uppercase.
Parameters:
oldTable - original mixed-case keys Hashtable
Returns:
new Hashtable with keys in uppercase.
Throws:
IfsException - if the operation fails