Class CmsUser
- java.lang.Object
-
- org.opencms.security.CmsPrincipal
-
- org.opencms.file.CmsUser
-
- All Implemented Interfaces:
java.io.Serializable,java.lang.Cloneable,java.lang.Comparable<I_CmsPrincipal>,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
role. These users are "content managers" that actually have write permissions in at last some parts of the VFS.CmsRole.ACCOUNT_MANAGERAnother 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
- See Also:
CmsGroup, Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description static intFLAG_ADDITIONAL_INFOSFlag indicating changed additional infos.static intFLAG_CORE_DATAFlag indicating changed core data.static intFLAG_LAST_LOGINFlag indicating a changed last login date.-
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_ROLE, FLAG_GROUP_VIRTUAL, FLAG_USER_MANAGED, FLAG_USER_WEBUSER, PRINCIPAL_GROUP, PRINCIPAL_USER
-
-
Constructor Summary
Constructors Constructor Description 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<java.lang.String,java.lang.Object> additionalInfo)Creates a new OpenCms user principal.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static voidcheckEmail(java.lang.String email)Validates an email address.voidcheckName(java.lang.String name)Checks if the provided user name is a valid user name and can be used as an argument value forCmsPrincipal.setName(String).static voidcheckZipCode(java.lang.String zipcode)Validates a zip code.CmsUserclone()voiddeleteAdditionalInfo(java.lang.String key)Deletes a value from this users "additional information" storage map.java.util.Map<java.lang.String,java.lang.Object>getAdditionalInfo()Returns this users complete "additional information" storage map.java.lang.ObjectgetAdditionalInfo(java.lang.String key)Returns a value from this users "additional information" storage map, ornullif no value for the given key is available.java.lang.StringgetAddress()Returns the address line of this user.intgetChanges(CmsUser oldUser)Returns the changes of this user compared to the previous user data.java.lang.StringgetCity()Returns the city information of this user.java.lang.StringgetCountry()Returns the country information of this user.longgetDateCreated()Returns the creation date.java.lang.StringgetDescription()Returns the description of this principal.java.lang.StringgetDescription(java.util.Locale locale)Returns the description of this organizational unit.java.lang.StringgetDisplayName(CmsObject cms, java.util.Locale locale)Returns the display name of this principal including the organizational unit.java.lang.StringgetEmail()Returns the email address of this user.java.lang.StringgetFirstname()Returns the first name of this user.java.lang.StringgetFullName()Returns the "full" name of the this user in the format"{firstname} {lastname} ({username})".static java.lang.StringgetFullName(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.java.lang.StringgetInstitution()Returns the institution information of this user.longgetLastlogin()Returns the time of the last login of this user.java.lang.StringgetLastname()Returns the last name of this user.java.lang.StringgetPassword()Returns the encrypted user password.java.lang.StringgetZipcode()Returns the zip code information of this user.static booleanhasChangedAdditionalInfos(int changes)Checks whether the flag indicates additional info changes.static booleanhasChangedCoreData(int changes)Checks whether the flag indicates core data changes.static booleanhasChangedLastLogin(int changes)Checks whether the flag indicates last login date changes.static booleanhasPrefix(java.lang.String principalName)Checks if the given String starts withI_CmsPrincipal.PRINCIPAL_USERfollowed by a dot.booleanisGroup()Returnstrueif this principal is of type.CmsGroupbooleanisGuestUser()Checks if this user is the default guest user.booleanisManaged()Returnstrueif this user is not able to manage itself.booleanisTouched()Returnstrueif this user was touched.booleanisUser()Returnstrueif this principal is of type.CmsUserbooleanisWebuser()Checks if the user is marked as webuser.static java.lang.StringremovePrefix(java.lang.String principalName)Removes the prefix if the given String starts withI_CmsPrincipal.PRINCIPAL_USERfollowed by a dot.voidsetAdditionalInfo(java.lang.String key, java.lang.Object value)Stores a value in this users "additional information" storage map with the given access key.voidsetAdditionalInfo(java.util.Map<java.lang.String,java.lang.Object> additionalInfo)Sets this users complete "additional information" storage map to the given value.voidsetAddress(java.lang.String address)Sets the address line of this user.voidsetCity(java.lang.String city)Sets the city information of this user.voidsetCountry(java.lang.String country)Sets the country information of this user.voidsetDescription(java.lang.String description)Sets the description of this principal.voidsetEmail(java.lang.String email)Sets the email address of this user.voidsetFirstname(java.lang.String firstname)Sets the first name of this user.voidsetInstitution(java.lang.String institution)Sets the institution information of this user.voidsetLastlogin(long value)Sets the last login time stamp of this user.voidsetLastname(java.lang.String lastname)Sets the last name of this user.voidsetManaged(boolean value)Sets the managed flag for this user to the given value.voidsetPassword(java.lang.String value)Sets the password of this user.voidsetZipcode(java.lang.String zipcode)Sets the zip code information of this user.java.lang.StringtoString()voidtouch()Sets the "touched" status of this user totrue.-
Methods inherited from class org.opencms.security.CmsPrincipal
compareTo, equals, filterCoreFlag, filterCoreGroups, filterCoreUsers, filterFlag, getDisplayName, getFlags, getId, getName, getOuFqn, getPrefixedGroup, getPrefixedName, getPrefixedUser, getSimpleName, getType, hashCode, isEnabled, readPrefixedPrincipal, readPrincipal, readPrincipal, readPrincipal, readPrincipalIncludingHistory, setEnabled, setFlags, setName
-
-
-
-
Field Detail
-
FLAG_ADDITIONAL_INFOS
public static final int FLAG_ADDITIONAL_INFOS
Flag indicating changed additional infos.- See Also:
- Constant Field Values
-
FLAG_CORE_DATA
public static final int FLAG_CORE_DATA
Flag indicating changed core data.- See Also:
- Constant Field Values
-
FLAG_LAST_LOGIN
public static final int FLAG_LAST_LOGIN
Flag indicating a changed last login date.- See Also:
- Constant Field Values
-
-
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<java.lang.String,java.lang.Object> additionalInfo)
Creates a new OpenCms user principal.- Parameters:
id- the unique id of the new username- the fully qualified name of the new userpassword- the password of the userfirstname- the first namelastname- the last nameemail- the email addresslastlogin- time stampflags- flagsdateCreated- the creation dateadditionalInfo- 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()
-
hasChangedAdditionalInfos
public static boolean hasChangedAdditionalInfos(int changes)
Checks whether the flag indicates additional info changes.- Parameters:
changes- the changes flags- Returns:
truein case the additional infos changed
-
hasChangedCoreData
public static boolean hasChangedCoreData(int changes)
Checks whether the flag indicates core data changes.- Parameters:
changes- the changes flags- Returns:
truein case the core data changed
-
hasChangedLastLogin
public static boolean hasChangedLastLogin(int changes)
Checks whether the flag indicates last login date changes.- Parameters:
changes- the changes flags- Returns:
truein case the last login date changed
-
hasPrefix
public static boolean hasPrefix(java.lang.String principalName)
Checks if the given String starts withI_CmsPrincipal.PRINCIPAL_USERfollowed by a dot.- Works if the given String is
null. - Removes white spaces around the String before the check.
- Also works with prefixes not being in upper case.
- Does not check if the user after the prefix actually exists.
- Parameters:
principalName- the user name to check- Returns:
truein case the String starts withI_CmsPrincipal.PRINCIPAL_USERfollowed by a dot
- Works if the given String is
-
removePrefix
public static java.lang.String removePrefix(java.lang.String principalName)
Removes the prefix if the given String starts withI_CmsPrincipal.PRINCIPAL_USERfollowed by a dot.- Works if the given String is
null. - If the given String does not start with
I_CmsPrincipal.PRINCIPAL_USERfollowed by a dot it is returned unchanged. - Removes white spaces around the user name.
- Also works with prefixes not being in upper case.
- Does not check if the user after the prefix actually exists.
- Parameters:
principalName- the user name to remove the prefix from- Returns:
- the given String with the prefix
I_CmsPrincipal.PRINCIPAL_USERand the following dot removed
- Works if the given String is
-
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 forCmsPrincipal.setName(String).- Specified by:
checkNamein interfaceI_CmsPrincipal- Parameters:
name- the user name to check- Throws:
CmsIllegalArgumentException- if the check fails
-
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<java.lang.String,java.lang.Object> getAdditionalInfo()
Returns this users complete "additional information" storage map.The "additional information" storage map is a simple
Mapthat 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, ornullif 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
-
getChanges
public int getChanges(CmsUser oldUser)
Returns the changes of this user compared to the previous user data.- Parameters:
oldUser- the old user- Returns:
- the changes flags
-
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_CmsPrincipalReturns the description of this principal.- Specified by:
getDescriptionin interfaceI_CmsPrincipal- Overrides:
getDescriptionin classCmsPrincipal- 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.- Specified by:
getDescriptionin interfaceI_CmsPrincipal- Parameters:
locale- the locale- Returns:
- the description of this organizational unit
-
getDisplayName
public java.lang.String getDisplayName(CmsObject cms, java.util.Locale locale) throws CmsException
Description copied from class:CmsPrincipalReturns the display name of this principal including the organizational unit.- Overrides:
getDisplayNamein classCmsPrincipal- Parameters:
cms- the cms contextlocale- 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
-
getInstitution
public java.lang.String getInstitution()
Returns the institution information of this user.This information is stored in the "additional information" storage map using the key
.CmsUserSettings.ADDITIONAL_INFO_INSTITUTION- Returns:
- the institution information of 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_CmsPrincipalReturnstrueif this principal is of type.CmsGroup- Specified by:
isGroupin interfaceI_CmsPrincipal- Overrides:
isGroupin classCmsPrincipal- Returns:
trueif this principal is of typeCmsGroup- See Also:
I_CmsPrincipal.isGroup()
-
isGuestUser
public boolean isGuestUser()
Checks if this user is the default guest user.- Returns:
trueif this user is the default guest user
-
isManaged
public boolean isManaged()
Returnstrueif this user is not able to manage itself.- Returns:
trueif this user is not able to manage itself
-
isTouched
public boolean isTouched()
Returnstrueif this user was touched.- Returns:
- boolean true if this user was touched
-
isUser
public boolean isUser()
Description copied from interface:I_CmsPrincipalReturnstrueif this principal is of type.CmsUser- Specified by:
isUserin interfaceI_CmsPrincipal- Overrides:
isUserin classCmsPrincipal- Returns:
trueif this principal is of typeCmsUser- See Also:
I_CmsPrincipal.isUser()
-
isWebuser
public boolean isWebuser()
Checks if the user is marked as webuser.- Returns:
trueif the user is marked as webuser
-
setAdditionalInfo
public void setAdditionalInfo(java.util.Map<java.lang.String,java.lang.Object> 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 undervalue- 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_CmsPrincipalSets the description of this principal.- Specified by:
setDescriptionin interfaceI_CmsPrincipal- Overrides:
setDescriptionin classCmsPrincipal- Parameters:
description- the principal description to set- See Also:
CmsPrincipal.setDescription(java.lang.String)
-
setEmail
public void setEmail(java.lang.String email)
Sets the email address of this user.- Parameters:
email- the email address to set
-
setFirstname
public void setFirstname(java.lang.String firstname)
Sets the first name of this user.- Parameters:
firstname- the name to set
-
setInstitution
public void setInstitution(java.lang.String institution)
Sets the institution information of this user.- Parameters:
institution- the institution information 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:
toStringin interfacejava.security.Principal- Overrides:
toStringin classjava.lang.Object- See Also:
Object.toString()
-
touch
public void touch()
Sets the "touched" status of this user totrue.
-
-