Authen-Users
view release on metacpan or search on metacpan
lib/Authen/Users.pm view on Meta::CPAN
: $self->{sha}->($password);
return 1 if $user_pw_digest eq $stored_pw_digest;
}
return;
}
sub add_user {
my ( $self, $group, $user, $password, $fullname, $email, $question,
$answer ) = @_;
$self->validate( $group, $user, $password ) or return;
$self->not_in_table( $group, $user ) or return;
my $r;
my $salt = 0;
if($self->{make_salt}) {
$salt = $self->{sha}->( time + rand(10000) );
$salt = substr( $salt, -8 );
my $password_sha = $self->{sha}->($password, $salt);
my $insert_sth = $self->{dbh}->prepare(<<ST_H);
INSERT INTO $self->{authentication}
(groop, user, password, fullname, email, question, answer,
created, modified, pw_timestamp, salt, gukey)
lib/Authen/Users.pm view on Meta::CPAN
}
unless ($password) {
$self->{_error} = "Password is not defined.";
return;
}
return 1;
}
# assistance functions
sub not_in_table {
my ( $self, $group, $user ) = @_;
my $unique_sth = $self->{dbh}->prepare(<<ST_H);
SELECT password FROM $self->{authentication} WHERE gukey = ?
ST_H
$unique_sth->execute( _g_u_key( $group, $user ) );
my @row = $unique_sth->fetchrow_array;
return if @row;
return 1;
}
sub is_in_table {
my ( $self, $group, $user ) = @_;
return if $self->not_in_table( $group, $user );
return 1;
}
#end of public interface
# internal use--not for object use (no $self argument)
sub _g_u_key {
my ( $group, $user ) = @_;
return $group . '|' . $user;
}
lib/Authen/Users.pm view on Meta::CPAN
Returns the last database error, if any.
=item B<error>
print $auth->error;
Returns the last class internal error message, if any; if none, returns the
last database DBI error, if any.
=item B<not_in_table>
$auth->not_in_table($group, $user);
True if $user in group $group is NOT already an entry.
Useful to rule out an existing user name when adding a user.
=item B<is_in_table>
$auth->is_in_table($group, $user);
True if $user in group $group is already in the database.
( run in 2.717 seconds using v1.01-cache-2.11-cpan-0a987023a57 )