diff options
author | Sergey Poznyakoff <gray@gnu.org> | 2017-10-11 13:58:53 +0200 |
---|---|---|
committer | Sergey Poznyakoff <gray@gnu.org> | 2017-10-11 13:58:53 +0200 |
commit | b1dded47a9ec467de3efdaf9980fdda0a5253325 (patch) | |
tree | 66a8aff5686cf75e3ca416c763becbb98581d5b2 | |
parent | 7fb5dbd013f5bfaa0666816447a66efaabe34492 (diff) | |
download | sourceyard-b1dded47a9ec467de3efdaf9980fdda0a5253325.tar.gz sourceyard-b1dded47a9ec467de3efdaf9980fdda0a5253325.tar.bz2 |
Log information about log-ins, user registrations and password changes
-rw-r--r-- | lib/Sourceyard/Controller.pm | 14 | ||||
-rw-r--r-- | lib/Sourceyard/Controller/Account.pm | 9 |
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; } |