From 11c2a6ecf81dbc1a49f494e05bd8d90b0dc43224 Mon Sep 17 00:00:00 2001 From: Chris Date: Mon, 2 Jan 2017 01:05:26 +0000 Subject: [PATCH] Overhaul signout code --- blocks/ORB/Login.pm | 41 +++++++++++++++++++++-------------------- lang/en/login.lang | 5 +++-- 2 files changed, 24 insertions(+), 22 deletions(-) diff --git a/blocks/ORB/Login.pm b/blocks/ORB/Login.pm index d2d3a76..7ad684a 100755 --- a/blocks/ORB/Login.pm +++ b/blocks/ORB/Login.pm @@ -974,8 +974,7 @@ sub _generate_passchange_form { ## @method private @ generate_loggedin() # Generate the contents of a page telling the user that they have successfully logged in. # -# @return An array of three values: the page title string, the 'logged in' message, and -# a meta element to insert into the head element to redirect the user. +# @return An array of two values: the page title string, and the 'logged in' message. sub _generate_loggedin { my $self = shift; my $content; @@ -1017,9 +1016,7 @@ sub _generate_loggedin { ## @method private @ generate_signedout() # Generate the contents of a page telling the user that they have successfully logged out. # -# @return An array of three values: the page title string, the 'logged out' message, and -# a meta element to insert into the head element to redirect the user. -# FIXME: OVERHAUL +# @return An array of two values: the page title string, and the 'logged out' message sub _generate_signedout { my $self = shift; @@ -1029,16 +1026,13 @@ sub _generate_signedout { # return the title, content, and extraheader return ("{L_LOGOUT_TITLE}", - $self -> message_box("{L_LOGOUT_TITLE}", - "security", - "{L_LOGOUT_SUMMARY}", - $self -> {"template"} -> replace_langvar("LOGOUT_MESSAGE", {"%(url)s" => $url}), - undef, - "logincore", - [ {"message" => "{L_SITE_CONTINUE}", - "colour" => "blue", - "action" => "location.href='$url'"} ]), - $self -> {"template"} -> load_template("refreshmeta.tem", {"%(url)s" => $url})); + $self -> message_box(title => "{L_LOGOUT_TITLE}", + type => "account", + summary => "{L_LOGOUT_SUMMARY}", + message => $self -> {"template"} -> replace_langvar("LOGOUT_MESSAGE", {"%(url)s" => $url}), + buttons => [ {"message" => "{L_SITE_CONTINUE}", + "colour" => "standard", + "href" => $url } ])); } @@ -1205,7 +1199,7 @@ sub _build_login_response { # ============================================================================ -# Interface functions +# UI handler/dispatcher functions ## @method private @ _handle_signup() # Handle the process of showing the user the signup form, and processing any @@ -1460,12 +1454,16 @@ sub _handle_default { } -# FIXME: OVERHAUL +## @method private @ _handle_signout() +# Handle signing the user out of the system. +# +# @return An array containing the page title, content, extra header data, and +# extra javascript content. sub _handle_signout { my $self = shift; # User must be logged in to log out - return $self -> _generate_not_loggedin() + return $self -> generate_errorbox(message => "{L_LOGIN_NOTSIGNEDIN}") if($self -> {"session"} -> anonymous_session()); # User is logged in, do the signout @@ -1473,7 +1471,7 @@ sub _handle_signout { if($self -> {"session"} -> delete_session()) { return $self -> _generate_signedout(); } else { - return $self -> generate_errorbox($SessionHandler::errstr); + return $self -> generate_errorbox(message => $SessionHandler::errstr); } } @@ -1508,8 +1506,8 @@ sub _dispatch_ui { when("passchange") { ($title, $body, $extrahead, $extrajs) = $self -> _handle_passchange(); } # default handles signin and redirect, paired with signout to log the user out - default { ($title, $body, $extrahead, $extrajs) = $self -> _handle_default(); } when("signout") { ($title, $body, $extrahead, $extrajs) = $self -> _handle_signout(); } + default { ($title, $body, $extrahead, $extrajs) = $self -> _handle_default(); } } # Done generating the page content, return the filled in page template @@ -1521,6 +1519,9 @@ sub _dispatch_ui { } +# ============================================================================ +# Module interface functions + ## @method $ page_display() # Generate the page content for this module. sub page_display { diff --git a/lang/en/login.lang b/lang/en/login.lang index 033d4f5..cd7e044 100755 --- a/lang/en/login.lang +++ b/lang/en/login.lang @@ -17,12 +17,13 @@ PERSIST_WARNING = WARNING: do not enable the "Remember me" opti LOGIN_DONETITLE = Signed in LOGIN_SUMMARY = You have successfully signed into the system. -LOGIN_MESSAGE = You have successfully signed in, and you will be redirected shortly. If you do not want to wait, click continue. Alternatively, Click here to return to the front page. +LOGIN_MESSAGE = You have successfully signed in, click continue or click here to return to the front page. LOGIN_NOREDIRECT = You have successfully signed in, but warnings were encountered during login. Please check the warning messages, and contact support if a serious problem has been encountered, otherwise, click continue. Alternatively, Click here to return to the front page. LOGOUT_TITLE = Signed out LOGOUT_SUMMARY = You have successfully signed out. -LOGOUT_MESSAGE = You have successfully signed out, and you will be redirected shortly. If you do not want to wait, click continue. Alternatively, Click here to return to the front page. +LOGOUT_MESSAGE = You have successfully signed out, click continue or click here to return to the front page. +LOGIN_NOTSIGNEDIN = You do not have a signed-in session active. Unable to sign you out! LOGIN_ERR_BADUSERCHAR = Illegal character in username. Usernames may only contain alphanumeric characters, underscores, or hyphens. LOGIN_ERR_INVALID = Login failed: unknown username or password provided.