---+ Package =TWiki::User=
A User object is an internal representation of a user in the real world.
The object knows about users having login names, wiki names, personal
topics, and email addresses.
%TOC%
Groups are also handled here. A group is really a subclass of a user,
in that it is a user with a set of users within it.
The User package also provides methods for managing the passwords of the
user.
---++ ClassMethod *new* ($session,$loginname,$wikiname)
Construct a new user object for the given login name, wiki name.
The wiki name can either be a wiki word or it can be a web-
qualified wiki word. If the wiki name is not web qualified, the
user is assumed to have their home topic in the
$TWiki::cfg{UsersWebName} web.
---++ ObjectMethod *wikiName* () -> $wikiName
Return the wikiname of the user (without the web!)
---++ ObjectMethod *webDotWikiName* () -> $webDotWiki
Return the fully qualified wikiname of the user
---++ ObjectMethod *login* () -> $loginName
Return the login name of the user
---++ ObjectMethod *web* () -> $webName
Return the registration web of the user
---++ ObjectMethod *equals* () -> $boolean
Test is this is the same user as another user object
---++ ObjectMethod *stringify* () -> $string
Generate a string representation of this object, suitable for debugging
---++ ObjectMethod *passwordExists* () -> $boolean
Checks to see if there is an entry in the password system
Return '1' if true, '' if not
---++ ObjectMethod *checkPassword* ($password) -> $boolean
used to check the user's password
=$password= unencrypted password
=$success= '1' if success
TODO: need to improve the error mechanism so TWikiAdmins know what failed
---++ ObjectMethod *removePassword* () -> $boolean
Used to remove the user and password from the password system.
Returns true if success
---++ ObjectMethod *changePassword* ($user,$oldUserPassword,$newUserPassword) -> $boolean
used to change the user's password
=$oldUserPassword= unencrypted password
=$newUserPassword= unencrypted password
undef if success, error message otherwise
---++ ObjectMethod *addPassword* ($newPassword) -> $boolean
creates a password entry
=$newUserPassword= unencrypted password
'1' if success
TODO: need to improve the error mechanism so TWikiAdmins know what failed
---++ ObjectMethod *resetPassword* () -> $newPassword
Reset the users password, returning the new generated password.
---++ ObjectMethod *emails* () -> @emailAddress
If this is a user, return their email addresses. If it is a group,
return the addresses of everyone in the group.
---++ ObjectMethod *setEmails* ($user,@emails)
Fetch the email address(es) for the given username
---++ ObjectMethod *isAdmin* () -> $boolean
True if the user is an admin (is a member of the $TWiki::cfg{SuperAdminGroup})
---++ ObjectMethod *getGroups* () -> @groups
Get a list of user objects for the groups a user is in
---++ ObjectMethod *isInList* ($list) -> $boolean
Return true we are in the list of user objects passed.
$list is a string representation of a user list.
---++ ObjectMethod *isGroup* () -> $boolean
Test if this is a group user or not
---++ ObjectMethod *groupMembers* () -> @members
Return a list of user objects that are members of this group. Should only be
called on groups.