<<

# Bugzilla::Auth::Verify

- NAME
- DESCRIPTION
- VERIFICATION METHODS
- MODIFICATION METHODS
- INFO METHODS

# NAME

Bugzilla::Auth::Verify - An object that verifies usernames and passwords.

# DESCRIPTION

Bugzilla::Auth::Verify provides the "Verifier" part of the Bugzilla login process. (For details, see the "STRUCTURE" section of Bugzilla::Auth.)

It is mostly an abstract class, requiring subclasses to implement most methods.

Note that callers outside of the `Bugzilla::Auth` package should never create this object directly. Just create a `Bugzilla::Auth` object and call `login` on it.

# VERIFICATION METHODS

These are the methods that have to do with the actual verification.

Subclasses MUST implement these methods.

`check_credentials($login_data)`

  Description: Checks whether or not a username is valid. Params: $login_data - A `$login_data` hashref, as described in Bugzilla::Auth. This `$login_data` hashref MUST contain `username`, and SHOULD also contain `password`. Returns: A `$login_data` hashref with `bz_username` set. This method may also set `realname`. It must avoid changing anything that is already set.

# MODIFICATION METHODS

These are methods that change data in the actual authentication backend.

These methods are optional, they do not have to be implemented by subclasses.

`create_or_update_user($login_data)`

  Description: Automatically creates a user account in the database if it doesn't already exist, or updates the account data if `$login_data` contains newer information.

  Params: $login_data - A `$login_data` hashref, as described in Bugzilla::Auth. This `$login_data` hashref MUST contain either `user_id`, `bz_username`, or `username`. If both `username` and `bz_username` are specified, `bz_username` is used as the login name of the user to create in the database. It MAY also contain `extern_id`, in which case it still MUST contain `bz_username` or `username`. It MAY contain `password` and `realname`.

  Returns: A hashref with one element, `user`, which is a Bugzilla::User object. May also return a login error as described in Bugzilla::Auth.

  Note: This method is not abstract, it is actually implemented and creates accounts in the Bugzilla database. Subclasses should probably all call the `Bugzilla::Auth::Verify` version of this function at the end of their own `create_or_update_user`.

`change_password($user, $password)`

  Description: Modifies the user's password in the authentication backend. Params: $user - A Bugzilla::User object representing the user whose password we want to change. $password - The user's new password. Returns: Nothing.

# INFO METHODS

These are methods that describe the capabilities of this object. These are all no-parameter methods that return either `true` or `false`.

`user_can_create_account`

  Whether or not users can manually create accounts in this type of account source. Defaults to `true`.

`extern_id_used`

  Whether or not this verifier method uses the extern_id field. If used, users with editusers permission will be be allowed to edit the extern_id for all users.

  The default value is `false`.

<<