org.opencms.file
Class CmsUser

java.lang.Object
  extended by org.opencms.security.CmsPrincipal
      extended by org.opencms.file.CmsUser
All Implemented Interfaces:
java.lang.Cloneable, java.lang.Comparable, java.security.Principal, I_CmsPrincipal

public class CmsUser
extends CmsPrincipal
implements java.lang.Cloneable

A user principal in the OpenCms permission system.

A user in OpenCms is uniquely defined by its user named returned by CmsPrincipal.getName().

Basic users in OpenCms are users that can access the OpenCms Workplace. Moreover, the user must be created by another user with the CmsRole.ACCOUNT_MANAGER role. These users are "content managers" that actually have write permissions in at last some parts of the VFS.

Another possibility is to have users in a 'Guests' group. These users do not have access to the OpenCms Workplace. However, an user in a 'Guests' group can be created by every user, for example the "Guest" user. The main use case is that these users are used for users of the website that can generate their own accounts, in a "please register your account..." scenario. These user accounts can then be used to build personalized web sites.

Since:
6.0.0
Version:
$Revision: 1.45 $
Author:
Alexander Kandzior, Michael Emmerich, Michael Moossen
See Also:
CmsGroup

Field Summary
 
Fields inherited from class org.opencms.security.CmsPrincipal
m_description, m_flags, m_id, m_name
 
Fields inherited from interface org.opencms.security.I_CmsPrincipal
FLAG_CORE_LIMIT, FLAG_DISABLED, FLAG_ENABLED, FLAG_GROUP_PROJECT_MANAGER, FLAG_GROUP_PROJECT_USER, FLAG_GROUP_ROLE, FLAG_GROUP_VIRTUAL, FLAG_USER_MANAGED, FLAG_USER_WEBUSER, PRINCIPAL_GROUP, PRINCIPAL_USER
 
Constructor Summary
CmsUser()
          Creates a new, empty OpenCms user principal.
CmsUser(CmsUUID id, java.lang.String name, java.lang.String password, java.lang.String firstname, java.lang.String lastname, java.lang.String email, long lastlogin, int flags, long dateCreated, java.util.Map additionalInfo)
          Creates a new OpenCms user principal.
 
Method Summary
static void checkEmail(java.lang.String email)
          Validates an email address.
 void checkName(java.lang.String name)
          Checks if the provided user name is a valid user name and can be used as an argument value for CmsPrincipal.setName(String).
static void checkZipCode(java.lang.String zipcode)
          Validates a zip code.
 java.lang.Object clone()
           
 void deleteAdditionalInfo(java.lang.String key)
          Deletes a value from this users "additional information" storage map.
 java.util.Map getAdditionalInfo()
          Returns this users complete "additional information" storage map.
 java.lang.Object getAdditionalInfo(java.lang.String key)
          Returns a value from this users "additional information" storage map, or null if no value for the given key is available.
 java.lang.String getAddress()
          Returns the address line of this user.
 java.lang.String getCity()
          Returns the city information of this user.
 java.lang.String getCountry()
          Returns the country information of this user.
 long getDateCreated()
          Returns the creation date.
 java.lang.String getDescription()
          Returns the description of this principal.
 java.lang.String getDescription(java.util.Locale locale)
          Returns the description of this organizational unit.
 boolean getDisabled()
          Deprecated. use CmsPrincipal.isEnabled() instead
 java.lang.String getDisplayName(CmsObject cms, java.util.Locale locale)
          Returns the display name of this principal including the organizational unit.
 java.lang.String getEmail()
          Returns the email address of this user.
 java.lang.String getFirstname()
          Returns the first name of this user.
 java.lang.String getFullName()
          Returns the "full" name of the this user in the format "{firstname} {lastname} ({username})".
static java.lang.String getFullName(CmsUser user)
          Returns the "full" name of the given user in the format "{firstname} {lastname} ({username})", or the empty String "" if the user is null.
 long getLastlogin()
          Returns the time of the last login of this user.
 java.lang.String getLastname()
          Returns the last name of this user.
 java.lang.String getPassword()
          Returns the encrypted user password.
 java.lang.String getZipcode()
          Returns the zip code information of this user.
 boolean isGroup()
          Returns true if this principal is of type CmsGroup.
 boolean isGuestUser()
          Checks if this user is the default guest user.
 boolean isManaged()
          Returns true if this user is not able to manage itself.
static boolean isSystemUser(int type)
          Deprecated. the user type concept has been abandoned
 boolean isTouched()
          Returns true if this user was touched.
 boolean isUser()
          Returns true if this principal is of type CmsUser.
 boolean isWebuser()
          Checks if the user is marked as webuser.
 void setAdditionalInfo(java.util.Map additionalInfo)
          Sets this users complete "additional information" storage map to the given value.
 void setAdditionalInfo(java.lang.String key, java.lang.Object value)
          Stores a value in this users "additional information" storage map with the given access key.
 void setAddress(java.lang.String address)
          Sets the address line of this user.
 void setCity(java.lang.String city)
          Sets the city information of this user.
 void setCountry(java.lang.String country)
          Sets the country information of this user.
 void setDescription(java.lang.String description)
          Sets the description of this principal.
 void setDisabled()
          Deprecated. use CmsPrincipal.setEnabled(boolean) instead
 void setEmail(java.lang.String email)
          Sets the email address of this user.
 void setEnabled()
          Deprecated. use CmsPrincipal.setEnabled(boolean) instead
 void setFirstname(java.lang.String firstname)
          Sets the first name of this user.
 void setLastlogin(long value)
          Sets the last login time stamp of this user.
 void setLastname(java.lang.String lastname)
          Sets the last name of this user.
 void setManaged(boolean value)
          Sets the managed flag for this user to the given value.
 void setPassword(java.lang.String value)
          Sets the password of this user.
 void setZipcode(java.lang.String zipcode)
          Sets the zip code information of this user.
 java.lang.String toString()
           
 void touch()
          Sets the "touched" status of this user to true.
 
Methods inherited from class org.opencms.security.CmsPrincipal
compareTo, equals, filterCore, filterCoreFlag, filterFlag, getFlags, getId, getName, getOuFqn, getPrefixedGroup, getPrefixedName, getPrefixedUser, getSimpleName, hashCode, isEnabled, readPrefixedPrincipal, readPrincipal, readPrincipal, readPrincipalIncludingHistory, setEnabled, setFlags, setName
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

CmsUser

public CmsUser()
Creates a new, empty OpenCms user principal.

Mostly intended to be used with the org.opencms.workplace.tools.accounts.A_CmsEditUserDialog.


CmsUser

public CmsUser(CmsUUID id,
               java.lang.String name,
               java.lang.String password,
               java.lang.String firstname,
               java.lang.String lastname,
               java.lang.String email,
               long lastlogin,
               int flags,
               long dateCreated,
               java.util.Map additionalInfo)
Creates a new OpenCms user principal.

Parameters:
id - the unique id of the new user
name - the fully qualified name of the new user
password - the password of the user
firstname - the first name
lastname - the last name
email - the email address
lastlogin - time stamp
flags - flags
dateCreated - the creation date
additionalInfo - user related information
Method Detail

checkEmail

public static void checkEmail(java.lang.String email)
Validates an email address.

That means, the parameter should only be composed by digits and standard english letters, points, underscores and exact one "At" symbol.

Parameters:
email - the email to validate

checkZipCode

public static void checkZipCode(java.lang.String zipcode)
Validates a zip code.

That means, the parameter should only be composed by digits and standard english letters.

Parameters:
zipcode - the zip code to validate

getFullName

public static java.lang.String getFullName(CmsUser user)
Returns the "full" name of the given user in the format "{firstname} {lastname} ({username})", or the empty String "" if the user is null.

Parameters:
user - the user to get the full name from
Returns:
the "full" name the user
See Also:
getFullName()

isSystemUser

public static boolean isSystemUser(int type)
Deprecated. the user type concept has been abandoned

Returns true if the provided user type indicates a system user.

Parameters:
type - the user type to check
Returns:
true if the provided user type indicates a system user

checkName

public void checkName(java.lang.String name)
               throws CmsIllegalArgumentException
Checks if the provided user name is a valid user name and can be used as an argument value for CmsPrincipal.setName(String).

Specified by:
checkName in interface I_CmsPrincipal
Parameters:
name - the user name to check
Throws:
CmsIllegalArgumentException - if the check fails

clone

public java.lang.Object clone()
Overrides:
clone in class java.lang.Object
See Also:
Object.clone()

deleteAdditionalInfo

public void deleteAdditionalInfo(java.lang.String key)
Deletes a value from this users "additional information" storage map.

Parameters:
key - the additional user information to delete
See Also:
getAdditionalInfo()

getAdditionalInfo

public java.util.Map getAdditionalInfo()
Returns this users complete "additional information" storage map.

The "additional information" storage map is a simple Map that can be used to store any key / value pairs for the user. Some information parts of the users address are stored in this map by default.

Returns:
this users complete "additional information" storage map

getAdditionalInfo

public java.lang.Object getAdditionalInfo(java.lang.String key)
Returns a value from this users "additional information" storage map, or null if no value for the given key is available.

Parameters:
key - selects the value to return from the "additional information" storage map
Returns:
the selected value from this users "additional information" storage map
See Also:
getAdditionalInfo()

getAddress

public java.lang.String getAddress()
Returns the address line of this user.

Returns:
the address line of this user

getCity

public java.lang.String getCity()
Returns the city information of this user.

This information is stored in the "additional information" storage map using the key CmsUserSettings.ADDITIONAL_INFO_CITY.

Returns:
the city information of this user

getCountry

public java.lang.String getCountry()
Returns the country information of this user.

This information is stored in the "additional information" storage map using the key CmsUserSettings.ADDITIONAL_INFO_COUNTRY.

Returns:
the country information of this user

getDateCreated

public long getDateCreated()
Returns the creation date.

Returns:
the creation date

getDescription

public java.lang.String getDescription()
Description copied from interface: I_CmsPrincipal
Returns the description of this principal.

Specified by:
getDescription in interface I_CmsPrincipal
Overrides:
getDescription in class CmsPrincipal
Returns:
the description of this principal
See Also:
CmsPrincipal.getDescription()

getDescription

public java.lang.String getDescription(java.util.Locale locale)
Returns the description of this organizational unit.

Parameters:
locale - the locale
Returns:
the description of this organizational unit

getDisabled

public boolean getDisabled()
Deprecated. use CmsPrincipal.isEnabled() instead

Returns true if this user is disabled.

Returns:
true if this user is disabled

getDisplayName

public java.lang.String getDisplayName(CmsObject cms,
                                       java.util.Locale locale)
                                throws CmsException
Description copied from class: CmsPrincipal
Returns the display name of this principal including the organizational unit.

Overrides:
getDisplayName in class CmsPrincipal
Parameters:
cms - the cms context
locale - the locale
Returns:
the display name of this principal including the organizational unit
Throws:
CmsException - if the organizational unit could not be read
See Also:
CmsPrincipal.getDisplayName(org.opencms.file.CmsObject, java.util.Locale)

getEmail

public java.lang.String getEmail()
Returns the email address of this user.

Returns:
the email address of this user

getFirstname

public java.lang.String getFirstname()
Returns the first name of this user.

Returns:
the first name of this user

getFullName

public java.lang.String getFullName()
Returns the "full" name of the this user in the format "{firstname} {lastname} ({username})".

Returns:
the "full" name this user

getLastlogin

public long getLastlogin()
Returns the time of the last login of this user.

Returns:
the time of the last login of this user

getLastname

public java.lang.String getLastname()
Returns the last name of this user.

Returns:
the last name of this user

getPassword

public java.lang.String getPassword()
Returns the encrypted user password.

Returns:
the encrypted user password

getZipcode

public java.lang.String getZipcode()
Returns the zip code information of this user.

This information is stored in the "additional information" storage map using the key CmsUserSettings.ADDITIONAL_INFO_ZIPCODE.

Returns:
the zip code information of this user

isGroup

public boolean isGroup()
Description copied from interface: I_CmsPrincipal
Returns true if this principal is of type CmsGroup.

Specified by:
isGroup in interface I_CmsPrincipal
Overrides:
isGroup in class CmsPrincipal
Returns:
true if this principal is of type CmsGroup
See Also:
I_CmsPrincipal.isGroup()

isGuestUser

public boolean isGuestUser()
Checks if this user is the default guest user.

Returns:
true if this user is the default guest user

isManaged

public boolean isManaged()
Returns true if this user is not able to manage itself.

Returns:
true if this user is not able to manage itself

isTouched

public boolean isTouched()
Returns true if this user was touched.

Returns:
boolean true if this user was touched

isUser

public boolean isUser()
Description copied from interface: I_CmsPrincipal
Returns true if this principal is of type CmsUser.

Specified by:
isUser in interface I_CmsPrincipal
Overrides:
isUser in class CmsPrincipal
Returns:
true if this principal is of type CmsUser
See Also:
I_CmsPrincipal.isUser()

isWebuser

public boolean isWebuser()
Checks if the user is marked as webuser.

Returns:
true if the user is marked as webuser

setAdditionalInfo

public void setAdditionalInfo(java.util.Map additionalInfo)
Sets this users complete "additional information" storage map to the given value.

Parameters:
additionalInfo - the complete "additional information" map to set
See Also:
getAdditionalInfo()

setAdditionalInfo

public void setAdditionalInfo(java.lang.String key,
                              java.lang.Object value)
Stores a value in this users "additional information" storage map with the given access key.

Parameters:
key - the key to store the value under
value - the value to store in the users "additional information" storage map
See Also:
getAdditionalInfo()

setAddress

public void setAddress(java.lang.String address)
Sets the address line of this user.

Parameters:
address - the address line to set

setCity

public void setCity(java.lang.String city)
Sets the city information of this user.

Parameters:
city - the city information to set

setCountry

public void setCountry(java.lang.String country)
Sets the country information of this user.

Parameters:
country - the city information to set

setDescription

public void setDescription(java.lang.String description)
Description copied from interface: I_CmsPrincipal
Sets the description of this principal.

Specified by:
setDescription in interface I_CmsPrincipal
Overrides:
setDescription in class CmsPrincipal
Parameters:
description - the principal description to set
See Also:
CmsPrincipal.setDescription(java.lang.String)

setDisabled

public void setDisabled()
Deprecated. use CmsPrincipal.setEnabled(boolean) instead

Disables this user.


setEmail

public void setEmail(java.lang.String email)
Sets the email address of this user.

Parameters:
email - the email address to set

setEnabled

public void setEnabled()
Deprecated. use CmsPrincipal.setEnabled(boolean) instead

Enables this user.


setFirstname

public void setFirstname(java.lang.String firstname)
Sets the first name of this user.

Parameters:
firstname - the name to set

setLastlogin

public void setLastlogin(long value)
Sets the last login time stamp of this user.

Parameters:
value - the last login time stamp to set

setLastname

public void setLastname(java.lang.String lastname)
Sets the last name of this user.

Parameters:
lastname - the name to set

setManaged

public void setManaged(boolean value)
Sets the managed flag for this user to the given value.

Parameters:
value - the value to set

setPassword

public void setPassword(java.lang.String value)
Sets the password of this user.

Parameters:
value - the password to set

setZipcode

public void setZipcode(java.lang.String zipcode)
Sets the zip code information of this user.

Parameters:
zipcode - the zip code information to set

toString

public java.lang.String toString()
Specified by:
toString in interface java.security.Principal
Overrides:
toString in class java.lang.Object
See Also:
Object.toString()

touch

public void touch()
Sets the "touched" status of this user to true.