Purpose
This module hosts the User Authentication implementation.
Currently it is hardwired to Apache based
HtPasswd? /
HtDigest? backends using
HtPasswdUserDotPm, or
NoPasswdUserDotPm for always return yes, no password system.
Used by
This module is used by
TWikiDotPm,
RegisterCgiScript,
PasswdCgiScript,
ManageCgiScript and
InstallpasswdCgiScript.
Please see
CodevDocumentationProject and
CodevDocumentationProjectDev to comment on the format of these pages.
| Note: | Below documentation is extracted from the currently installled TWiki::User Perl module, which is done by the PerlDocPlugin |
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.
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.
Contributors:
--
SvenDowideit - 01 Feb 2004
--
PeterThoeny - 01 Feb 2004
Discussions
See proposal at
UserObjectModel
--
MartinCleaver - 16 Oct 2004