refactoring
optimize imports reformat source code remove unused cpu and memory log functionality
This commit is contained in:
@@ -1,16 +1,16 @@
|
||||
package password_requests;
|
||||
package password_requests;
|
||||
|
||||
use warnings "all";
|
||||
use strict;
|
||||
|
||||
use Data::Dumper;
|
||||
use Session::Token;
|
||||
use Session::Token();
|
||||
|
||||
# table: calcms_password_requests
|
||||
require Exporter;
|
||||
our @ISA = qw(Exporter);
|
||||
our @EXPORT_OK = qw(get insert delete get_columns);
|
||||
our %EXPORT_TAGS = ( 'all' => [ @EXPORT_OK ] );
|
||||
our @ISA = qw(Exporter);
|
||||
our @EXPORT_OK = qw(get insert delete get_columns);
|
||||
our %EXPORT_TAGS = ( 'all' => [@EXPORT_OK] );
|
||||
|
||||
use mail;
|
||||
use uac;
|
||||
@@ -19,157 +19,159 @@ use auth;
|
||||
|
||||
sub debug;
|
||||
|
||||
sub get_columns{
|
||||
my $config=shift;
|
||||
sub get_columns {
|
||||
my $config = shift;
|
||||
|
||||
my $dbh=db::connect($config);
|
||||
my $cols=db::get_columns($dbh, 'calcms_password_requests');
|
||||
my $columns={};
|
||||
for my $col (@$cols){
|
||||
$columns->{$col}=1;
|
||||
my $dbh = db::connect($config);
|
||||
my $cols = db::get_columns( $dbh, 'calcms_password_requests' );
|
||||
my $columns = {};
|
||||
for my $col (@$cols) {
|
||||
$columns->{$col} = 1;
|
||||
}
|
||||
return $columns;
|
||||
}
|
||||
|
||||
sub get{
|
||||
my $config=shift;
|
||||
my $condition=shift;
|
||||
sub get {
|
||||
my $config = shift;
|
||||
my $condition = shift;
|
||||
|
||||
my $dbh=db::connect($config);
|
||||
my $dbh = db::connect($config);
|
||||
|
||||
my @conditions=();
|
||||
my @bind_values=();
|
||||
my @conditions = ();
|
||||
my @bind_values = ();
|
||||
|
||||
if (defined $condition->{user}){
|
||||
push @conditions, 'user=?';
|
||||
if ( defined $condition->{user} ) {
|
||||
push @conditions, 'user=?';
|
||||
push @bind_values, $condition->{user};
|
||||
}
|
||||
|
||||
if (defined $condition->{token}){
|
||||
push @conditions, 'token=?';
|
||||
if ( defined $condition->{token} ) {
|
||||
push @conditions, 'token=?';
|
||||
push @bind_values, $condition->{token};
|
||||
}
|
||||
|
||||
return undef if (scalar @conditions) == 0;
|
||||
return undef if ( scalar @conditions ) == 0;
|
||||
|
||||
my $conditions=" where ".join(" and ",@conditions);
|
||||
my $query=qq{
|
||||
my $conditions = " where " . join( " and ", @conditions );
|
||||
my $query = qq{
|
||||
select *
|
||||
from calcms_password_requests
|
||||
$conditions
|
||||
};
|
||||
|
||||
#print $query."\n".Dumper(\@bind_values);
|
||||
|
||||
my $entries=db::get($dbh, $query, \@bind_values);
|
||||
my $entries = db::get( $dbh, $query, \@bind_values );
|
||||
return $entries->[0] || undef;
|
||||
}
|
||||
|
||||
sub update{
|
||||
my $config=shift;
|
||||
my $entry=shift;
|
||||
sub update {
|
||||
my $config = shift;
|
||||
my $entry = shift;
|
||||
|
||||
return unless defined $entry->{user};
|
||||
|
||||
my $dbh=db::connect($config);
|
||||
my $values = join(",", map {$_.'=?'} (keys %$entry));
|
||||
my @bind_values = map {$entry->{$_}} (keys %$entry);
|
||||
my $dbh = db::connect($config);
|
||||
my $values = join( ",", map { $_ . '=?' } ( keys %$entry ) );
|
||||
my @bind_values = map { $entry->{$_} } ( keys %$entry );
|
||||
push @bind_values, $entry->{token};
|
||||
|
||||
my $query=qq{
|
||||
my $query = qq{
|
||||
update calcms_password_requests
|
||||
set $values
|
||||
where token=?
|
||||
};
|
||||
print STDERR $query . Dumper(\@bind_values);
|
||||
db::put($dbh, $query, \@bind_values);
|
||||
print STDERR $query . Dumper( \@bind_values );
|
||||
db::put( $dbh, $query, \@bind_values );
|
||||
}
|
||||
|
||||
|
||||
sub insert{
|
||||
my $config=shift;
|
||||
my $entry=shift;
|
||||
sub insert {
|
||||
my $config = shift;
|
||||
my $entry = shift;
|
||||
|
||||
return undef unless defined $entry->{user};
|
||||
|
||||
my $dbh=db::connect($config);
|
||||
print STDERR 'insert ' . Dumper($entry);
|
||||
return db::insert($dbh, 'calcms_password_requests', $entry);
|
||||
my $dbh = db::connect($config);
|
||||
print STDERR 'insert ' . Dumper($entry);
|
||||
return db::insert( $dbh, 'calcms_password_requests', $entry );
|
||||
}
|
||||
|
||||
sub delete{
|
||||
my $config=shift;
|
||||
my $condition=shift;
|
||||
|
||||
my @conditions=();
|
||||
my @bind_values=();
|
||||
sub delete {
|
||||
my $config = shift;
|
||||
my $condition = shift;
|
||||
|
||||
if ((defined $condition->{user}) && ($condition->{user} ne '')){
|
||||
push @conditions, 'user=?';
|
||||
my @conditions = ();
|
||||
my @bind_values = ();
|
||||
|
||||
if ( ( defined $condition->{user} ) && ( $condition->{user} ne '' ) ) {
|
||||
push @conditions, 'user=?';
|
||||
push @bind_values, $condition->{user};
|
||||
}
|
||||
|
||||
if ((defined $condition->{token}) && ($condition->{token} ne '')){
|
||||
push @conditions, 'token=?';
|
||||
if ( ( defined $condition->{token} ) && ( $condition->{token} ne '' ) ) {
|
||||
push @conditions, 'token=?';
|
||||
push @bind_values, $condition->{token};
|
||||
}
|
||||
|
||||
return if (scalar @conditions)==0;
|
||||
my $conditions=" where ".join(" and ", @conditions);
|
||||
return if ( scalar @conditions ) == 0;
|
||||
my $conditions = " where " . join( " and ", @conditions );
|
||||
|
||||
my $dbh=db::connect($config);
|
||||
my $dbh = db::connect($config);
|
||||
|
||||
my $query=qq{
|
||||
my $query = qq{
|
||||
delete
|
||||
from calcms_password_requests
|
||||
$conditions
|
||||
};
|
||||
|
||||
print STDERR "$query " . Dumper(\@bind_values);
|
||||
db::put($dbh, $query, \@bind_values);
|
||||
print STDERR "$query " . Dumper( \@bind_values );
|
||||
db::put( $dbh, $query, \@bind_values );
|
||||
}
|
||||
|
||||
sub sendToken{
|
||||
my $config=shift;
|
||||
my $entry=shift;
|
||||
sub sendToken {
|
||||
my $config = shift;
|
||||
my $entry = shift;
|
||||
|
||||
return undef unless defined $entry->{user};
|
||||
|
||||
my $user = uac::get_user($config, $entry->{user});
|
||||
return undef unless defined $user;
|
||||
my $user = uac::get_user( $config, $entry->{user} );
|
||||
return undef unless defined $user;
|
||||
|
||||
# check age of existing entry
|
||||
my $oldEntry = password_requests::get($config, { user => $entry->{user} } );
|
||||
if (defined $oldEntry){
|
||||
my $createdAt = $oldEntry->{created_at};
|
||||
print STDERR Dumper($oldEntry);
|
||||
print STDERR "createdAt=$createdAt\n";
|
||||
my $age = time() - time::datetime_to_time($createdAt);
|
||||
if ($age < 60) {
|
||||
print STDERR "too many requests";
|
||||
return undef;
|
||||
}
|
||||
print STDERR "age=$age\n";
|
||||
}
|
||||
password_requests::delete($config, $entry);
|
||||
# check age of existing entry
|
||||
my $oldEntry = password_requests::get( $config, { user => $entry->{user} } );
|
||||
if ( defined $oldEntry ) {
|
||||
my $createdAt = $oldEntry->{created_at};
|
||||
print STDERR Dumper($oldEntry);
|
||||
print STDERR "createdAt=$createdAt\n";
|
||||
my $age = time() - time::datetime_to_time($createdAt);
|
||||
if ( $age < 60 ) {
|
||||
print STDERR "too many requests";
|
||||
return undef;
|
||||
}
|
||||
print STDERR "age=$age\n";
|
||||
}
|
||||
password_requests::delete( $config, $entry );
|
||||
|
||||
$entry->{max_attempts} = 0;
|
||||
$entry->{token} = Session::Token->new->get;
|
||||
$entry->{max_attempts} = 0;
|
||||
$entry->{token} = Session::Token->new->get;
|
||||
|
||||
my $baseUrl = $config->{locations}->{source_base_url} . $config->{locations}->{editor_base_url};
|
||||
my $url = $baseUrl."/requestPassword.cgi?token=" . $entry->{token};
|
||||
my $content = "Hi,$user->{full_name}\n\n";
|
||||
$content .= "Someone just tried to reset your password for $baseUrl.\n\n";
|
||||
$content .= "If you like to set a new password, please follow the link below\n";
|
||||
$content .= $url."\n\n";
|
||||
$content .= "If you do not like to set a new password, please ignore this mail.\n";
|
||||
my $baseUrl = $config->{locations}->{source_base_url} . $config->{locations}->{editor_base_url};
|
||||
my $url = $baseUrl . "/requestPassword.cgi?token=" . $entry->{token};
|
||||
my $content = "Hi,$user->{full_name}\n\n";
|
||||
$content .= "Someone just tried to reset your password for $baseUrl.\n\n";
|
||||
$content .= "If you like to set a new password, please follow the link below\n";
|
||||
$content .= $url . "\n\n";
|
||||
$content .= "If you do not like to set a new password, please ignore this mail.\n";
|
||||
|
||||
mail::send({
|
||||
"To" => $user->{email},
|
||||
"Subject" => "request to change password for $baseUrl",
|
||||
"Data" => $content
|
||||
});
|
||||
mail::send(
|
||||
{
|
||||
"To" => $user->{email},
|
||||
"Subject" => "request to change password for $baseUrl",
|
||||
"Data" => $content
|
||||
}
|
||||
);
|
||||
|
||||
password_requests::insert($config, $entry);
|
||||
password_requests::insert( $config, $entry );
|
||||
}
|
||||
|
||||
sub changePassword {
|
||||
@@ -195,7 +197,7 @@ sub changePassword {
|
||||
}
|
||||
|
||||
if ( $params->{user_password} ne $params->{user_password2} ) {
|
||||
return { error => 'entered passwords do not match'};
|
||||
return { error => 'entered passwords do not match' };
|
||||
}
|
||||
|
||||
#print STDERR "error at changing password:" . Dumper($errors);
|
||||
@@ -207,11 +209,11 @@ sub changePassword {
|
||||
|
||||
#print '<pre>'.Dumper($user).'</pre>';
|
||||
$config->{access}->{write} = 1;
|
||||
print STDERR "update user".Dumper($user);
|
||||
print STDERR "update user" . Dumper($user);
|
||||
my $result = uac::update_user( $config, $user );
|
||||
print STDERR "result:".Dumper($result);
|
||||
print STDERR "result:" . Dumper($result);
|
||||
$config->{access}->{write} = 0;
|
||||
return { success => "password changed for $userName" };
|
||||
return { success => "password changed for $userName" };
|
||||
}
|
||||
|
||||
sub checkPassword {
|
||||
@@ -243,9 +245,8 @@ sub checkPassword {
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
sub error{
|
||||
my $msg=shift;
|
||||
sub error {
|
||||
my $msg = shift;
|
||||
print "ERROR: $msg<br/>\n";
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user