---
name: "Authen::Htpasswd::User"
section: "3pm"
platform: "linux"
package: "libauthen-htpasswd-perl"
version: "0.171-3"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Authen::Htpasswd::User"
---

# Authen::Htpasswd::User(3pm)

represents a user line in a .htpasswd file

## NAME

Authen::Htpasswd::User - represents a user line in a .htpasswd file

## SYNOPSIS

```
    my $user = Authen::Htpasswd::User->new($username, $password[, @extra_info], \%options);
    my $user = $pwfile->lookup_user($username); # from Authen::Htpasswd object

    if ($user->check_password($password)) { ... }
    if ($user->hashed_password eq $foo) { ... }

    # these are written immediately if the user was looked up from an Authen::Htpasswd object
    $user->username('bill');
    $user->password('bar');
    $user->hashed_password('tIYAwma5mxexA');
    $user->extra_info('root', 'joe@site.com', 'Joe Sysadmin');
    $user->set(username => 'bill', password => 'foo'); # set several at once

    print $user->to_line, "\n";
```

## METHODS

### new

```
    my $userobj = Authen::Htpasswd::User->new($username, $password[, @extra_info], \%options);
```

Creates a user object. You may also specify the arguments and options together in a hash:  `"{ username => $foo, password => $bar, extra_info => [$email, $name], ... }"`.

- encrypt\_hash

  - check\_hashes

  See Authen::Htpasswd.

- hashed\_password

  Explicitly sets the value of the hashed password, rather than generating it with `"password"`.

### check\_password

```
    $userobj->check_password($password,\@check_hashes);
```

Returns whether the password matches. `"check_hashes"` is the same as for Authen::Htpasswd.

### username

### hashed\_password

### extra\_info(@fields)

Get and set the fields of the user line. These methods, as well as `"password"` and `"set"` below, write  any changes immediately if the user was lookup up from an Authen::Htpasswd object. If the username is changed, the old entry is *not* preserved.

### password

```
    $userobj->password($newpass);
```

Encrypts a new password. Dies if `$newpass` is not provided.

### set

```
    $userobj->set(item => $value, ...);
```

Sets any of the four preceding values at once. Only writes the file once if it is going to be written.

### to\_line

```
    $userobj->to_line;
```

Returns a line for the user, suitable for printing to a `".htpasswd"` file. There is no newline at the end.

## AUTHOR

David Kamholz `"dkamholz@cpan.org"`

Yuval Kogman

## COPYRIGHT & LICENSE

```
    Copyright (c) 2005 - 2007 the aforementioned authors.

    This program is free software; you can redistribute
    it and/or modify it under the same terms as Perl itself.
```
