Package TWiki::Users::BaseUserMapping

User mapping is the process by which TWiki maps from a username (a login name) to a display name and back. It is also where groups are maintained.

The BaseMapper provides support for a small number of predefined users. No registration - this is a read only usermapper. It uses the mapper prefix 'BaseUserMapping_'.

Users

Groups

ClassMethod new ($session)

Construct the BaseUserMapping object

ObjectMethod finish ()

Break circular references.

ObjectMethod loginTemplateName () -> templateFile

allows UserMappings to come with customised login screens - that should preffereably only over-ride the UI function

ObjectMethod handlesUser ($cUID,$login,$wikiname) -> $boolean

See baseclass for documentation.

In the BaseUserMapping case, we know all the details of the users we specialise in.

ObjectMethod login2cUID ($login) -> $cUID

Convert a login name to the corresponding canonical user name. The canonical name can be any string of 7-bit alphanumeric and underscore characters, and must correspond 1:1 to the login name. (undef on failure)

ObjectMethod getLoginName ($cUID) -> login

converts an internal cUID to that user's login (undef on failure)

ObjectMethod getWikiName ($cUID) -> wikiname

Map a canonical user name to a wikiname

ObjectMethod userExists ($user) -> $boolean

Determine if the user already exists or not.

ObjectMethod eachUser () -> listIteratorofcUIDs

See baseclass for documentation.

ObjectMethod eachGroupMember ($group) -> listIteratorofcUIDs

See baseclass for documentation.

The basemapper implementation assumes that there are no nested groups in the basemapper.

ObjectMethod isGroup ($name) -> boolean

See baseclass for documentation.

ObjectMethod eachGroup () -> ListIteratorofgroupnames

See baseclass for documentation.

ObjectMethod eachMembership ($cUID) -> ListIteratorofgroupsthisuserisin

See baseclass for documentation.

ObjectMethod isAdmin ($cUID) -> $boolean

True if the user is an admin

  • is a member of the $TWiki::cfg{SuperAdminGroup}

ObjectMethod getEmails ($name) -> @emailAddress

If $name is a cUID, return their email addresses. If it is a group, return the addresses of everyone in the group.

ObjectMethod getUserData ($cUID) -> $dataRef

Return a reference to an array of hashes with user data, used to manage users. Each item is a hash with:

  • {name} - name of field, such as "email"
  • {title} - title of field, such as "E-mail"
  • {value} - value of field, such as "jimmy@example.com"
  • {type} - type of field: text, password, checkbox, label
  • {size} - size of field, such as 40
  • {note} - comment note, if any

User management forms can be build dynamically from this data structure. Each password manager may return a different set of fields.

ObjectMethod findUserByWikiName ($wikiname) -> listofcUIDsassociatedwiththatwikiname

See baseclass for documentation.

ObjectMethod checkPassword ($login,$passwordU) -> $boolean

Finds if the password is valid for the given user.

Returns 1 on success, undef on failure.

ObjectMethod setPassword ($cUID,$newPassU,$oldPassU) -> $boolean

If the $oldPassU matches matches the user's password, then it will replace it with $newPassU.

If $oldPassU is not correct and not 1, will return 0.

If $oldPassU is 1, will force the change irrespective of the existing password, adding the user if necessary.

Otherwise returns 1 on success, undef on failure.

ObjectMethod passwordError () -> $string

returns a string indicating the error that happened in the password handlers TODO: these delayed error's should be replaced with Exceptions.

returns undef if no error

Edit | Attach | Watch | Print version | History: r3 < r2 < r1 | Backlinks | Raw View | Raw edit | More topic actions
Topic revision: r3 - 2013-10-14 - TWikiContributor
 
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 1999-2024 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback
Note: Please contribute updates to this topic on TWiki.org at TWiki:TWiki.TWikiUsersBaseUserMappingDotPm.