summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Poznyakoff <gray@gnu.org>2017-10-11 13:58:53 +0200
committerSergey Poznyakoff <gray@gnu.org>2017-10-11 13:58:53 +0200
commitb1dded47a9ec467de3efdaf9980fdda0a5253325 (patch)
tree66a8aff5686cf75e3ca416c763becbb98581d5b2
parent7fb5dbd013f5bfaa0666816447a66efaabe34492 (diff)
downloadsourceyard-b1dded47a9ec467de3efdaf9980fdda0a5253325.tar.gz
sourceyard-b1dded47a9ec467de3efdaf9980fdda0a5253325.tar.bz2
Log information about log-ins, user registrations and password changes
-rw-r--r--lib/Sourceyard/Controller.pm14
-rw-r--r--lib/Sourceyard/Controller/Account.pm9
2 files changed, 23 insertions, 0 deletions
diff --git a/lib/Sourceyard/Controller.pm b/lib/Sourceyard/Controller.pm
index 2886539..41de26c 100644
--- a/lib/Sourceyard/Controller.pm
+++ b/lib/Sourceyard/Controller.pm
@@ -78,4 +78,18 @@ sub user_for_hash {
if ($ch);
}
+sub _str {
+ my $self = shift;
+ my @p;
+ push @p, $self->remote_addr;
+ if (my $user = $self->stash('user')) {
+ push @p, $user->user_name;
+ } else {
+ push @p, 'anonymous';
+ }
+ return '['.join(' ', @p).']'
+}
+
+use overload '""' => sub { shift->_str };
+
1;
diff --git a/lib/Sourceyard/Controller/Account.pm b/lib/Sourceyard/Controller/Account.pm
index 349cc85..a859141 100644
--- a/lib/Sourceyard/Controller/Account.pm
+++ b/lib/Sourceyard/Controller/Account.pm
@@ -44,9 +44,11 @@ sub user_login {
$user->update;
}
}
+ $self->log->info("$self: ". $user->user_name." logged in");
$self->set_user($user);
$self->redirect_to($return_url);
} else {
+ $self->log->info("$self: ". $user->user_name.": login failed");
$self->render('account/login',
error_msg => 'Invalid user name or password');
}
@@ -92,6 +94,10 @@ sub register {
$self->url_for('/account/confirm/'
. $user->confirm_hash->confirm_hash)
->to_abs);
+ $self->log->info("$self: new user registered: ".
+ $user->user_name.
+ ' ('. $user->real_name.')'.
+ ' <'. $user->email .'>');
$self->render('account/registered', user_name => $user->user_name);
return;
} else {
@@ -110,6 +116,7 @@ sub confirm {
if ($user && $user->status eq 'P') {
$user->update({ status => 'A' });
$user->confirm_hash->delete;
+ $self->log->info("$self: ". $user->user_name.": account confirmed");
$self->render('account/confirmed', user_name => $user->user_name);
return;
}
@@ -135,6 +142,7 @@ sub lostpw {
new_user => $user,
confirm_address =>
$self->url_for('/account/lostpw/'.$hash) ->to_abs);
+ $self->log->info("$self: requested password recovery for " . $user->user_name);
} else {
$self->render(undef, error_msg => 'No such user');
}
@@ -176,6 +184,7 @@ sub changepw {
$user->user_pw($t->password);
$user->update;
$user->confirm_hash->delete;
+ $self->log->info("$self: password changed for " . $user->user_name);
$self->render('account/recovered');
return;
}

Return to:

Send suggestions and report system problems to the System administrator.