]> git.mxchange.org Git - addressbook-war.git/commitdiff
re-added doUserLogout() + removed doLogout() as it was to generic
authorRoland Haeder <roland@mxchange.org>
Thu, 28 Jul 2016 20:06:29 +0000 (22:06 +0200)
committerRoland Haeder <roland@mxchange.org>
Thu, 28 Jul 2016 20:06:29 +0000 (22:06 +0200)
src/java/org/mxchange/addressbook/beans/login/AddressbookUserLoginWebSessionBean.java
src/java/org/mxchange/addressbook/beans/login/AddressbookUserLoginWebSessionController.java

index 7cc02845e89f351539b544d3125f49ce62453fa5..5caebaea1e54574fccc7a78dd6d68e9dc4b91223 100644 (file)
@@ -16,6 +16,7 @@
  */
 package org.mxchange.addressbook.beans.login;
 
+import java.text.MessageFormat;
 import java.util.Objects;
 import javax.enterprise.context.SessionScoped;
 import javax.enterprise.event.Event;
@@ -34,6 +35,7 @@ import org.mxchange.jusercore.container.login.UserLoginContainer;
 import org.mxchange.jusercore.events.login.UserLoggedInEvent;
 import org.mxchange.jusercore.events.login.UserLoginEvent;
 import org.mxchange.jusercore.events.logout.ObserveableUserLogoutEvent;
+import org.mxchange.jusercore.events.logout.UserLogoutEvent;
 import org.mxchange.jusercore.exceptions.UserNotFoundException;
 import org.mxchange.jusercore.exceptions.UserPasswordMismatchException;
 import org.mxchange.jusercore.exceptions.UserStatusLockedException;
@@ -190,6 +192,39 @@ public class AddressbookUserLoginWebSessionBean extends BaseAddressbookControlle
                }
        }
 
+       @Override
+       public String doUserLogout () {
+               // Is loggedInUser set?
+               if (this.getLoggedInUser() == null) {
+                       // Throw NPE
+                       throw new NullPointerException("this.loggedInUser is null"); //NOI18N
+               } else if (this.getLoggedInUser().getUserId() == null) {
+                       // Throw again
+                       throw new NullPointerException("this.loggedInUser.userId is null"); //NOI18N
+               } else if (this.getLoggedInUser().getUserId() < 1) {
+                       // Invalid user id
+                       throw new IllegalStateException(MessageFormat.format("this.loggedInUser.userId={0} is not valid.", this.getLoggedInUser().getUserId())); //NOI18N
+               }
+
+               // Fire event
+               this.userLogoutEvent.fire(new UserLogoutEvent(this.getLoggedInUser()));
+
+               // Invalidate session
+               FacesContext.getCurrentInstance().getExternalContext().invalidateSession();
+
+               // Unset any user instances
+               this.setLoggedInUser(null);
+               this.setBaseTemplatePathName(GUEST_BASE_TEMPLATE_NAME); //NOI18N
+
+               // Redirect to index
+               return "index"; //NOI18N
+       }
+
+       @Override
+       public String getBaseTemplatePathName () {
+               return this.baseTemplatePathName;
+       }
+
        @Override
        public void setBaseTemplatePathName (final String baseTemplatePathName) {
                this.baseTemplatePathName = baseTemplatePathName;
@@ -215,11 +250,6 @@ public class AddressbookUserLoginWebSessionBean extends BaseAddressbookControlle
                this.loggedInUser = loggedInUser;
        }
 
-       @Override
-       public String getBaseTemplatePathName () {
-               return this.baseTemplatePathName;
-       }
-
        @Override
        public boolean ifCurrentPasswordMatches () {
                // The current password must be set and not empty
index 25159a2cab5c9a1eab80832f0102dc57b50719d8..a4b7615b8a9d4499e62e495a60b7a06aed9a8658 100644 (file)
@@ -62,13 +62,6 @@ public interface AddressbookUserLoginWebSessionController extends Serializable {
         */
        String doUserLogout ();
 
-       /**
-        * Logout for current user by invalidating the current session.
-        * <p>
-        * @return Outcome (should be redirected)
-        */
-       String doLogout ();
-
        /**
         * Getter for logged-in user instance
         * <p>