summaryrefslogtreecommitdiff
path: root/fs_selfservice
diff options
context:
space:
mode:
authorIvan Kohler <ivan@freeside.biz>2014-12-28 14:19:44 -0800
committerIvan Kohler <ivan@freeside.biz>2014-12-28 14:19:44 -0800
commit8c6df81f77cf069afbf8d84eb62e7dcebb6f935f (patch)
tree1d4679f38048c0d089b9c4b8dc510b690b364615 /fs_selfservice
parentc56265c1ca8b9ce335c660f6f763fe1d8d61aa0f (diff)
fix contact self-service password reset link vs. outlook, RT#32657
Diffstat (limited to 'fs_selfservice')
-rwxr-xr-xfs_selfservice/FS-SelfService/cgi/selfservice.cgi13
1 files changed, 12 insertions, 1 deletions
diff --git a/fs_selfservice/FS-SelfService/cgi/selfservice.cgi b/fs_selfservice/FS-SelfService/cgi/selfservice.cgi
index b008fbf8b..4ccf1de82 100755
--- a/fs_selfservice/FS-SelfService/cgi/selfservice.cgi
+++ b/fs_selfservice/FS-SelfService/cgi/selfservice.cgi
@@ -88,12 +88,17 @@ my @nologin_actions = (qw(
do_forgot_password
process_forgot_password
do_process_forgot_password
+ process_forgot_password_session
));
push @actions, @nologin_actions;
my %nologin_actions = map { $_=>1 } @nologin_actions;
my $action = 'myaccount'; # sensible default
-if ( $cgi->param('action') =~ /^(\w+)$/ ) {
+
+if ( $cgi->param('action') =~ /^process_forgot_password_session_(\w+)$/ ) {
+ $action = 'process_forgot_password_session';
+ $session_id = $1;
+} elsif ( $cgi->param('action') =~ /^(\w+)$/ ) {
if (grep {$_ eq $1} @actions) {
$action = $1;
} else {
@@ -1051,6 +1056,12 @@ sub process_forgot_password {
);
}
+sub process_forgot_password_session {
+ check_reset_passwd(
+ 'session_id' => $session_id,
+ );
+}
+
sub do_process_forgot_password {
process_reset_passwd(
map { $_ => scalar($cgi->param($_)) }