package org.mxchange.addressbook.beans.login;
import java.text.MessageFormat;
+import java.util.Collections;
+import java.util.List;
import java.util.Objects;
import javax.enterprise.context.SessionScoped;
import javax.enterprise.event.Event;
import org.mxchange.jusercore.model.login.UserLoginSessionBeanRemote;
import org.mxchange.jusercore.model.user.User;
import org.mxchange.jusercore.model.user.UserUtils;
+import org.mxchange.jusercore.model.user.password_history.PasswordHistory;
+import org.mxchange.jusercore.model.user.password_history.UserPasswordHistorySessionBeanRemote;
import org.mxchange.jusercore.model.user.profilemodes.ProfileMode;
import org.mxchange.jusercore.model.user.status.UserAccountStatus;
private User loggedInUser;
/**
- * Remote register session bean
+ * EJB for user-login
*/
private UserLoginSessionBeanRemote loginBean;
@Any
private Event<ObserveableUserLogoutEvent> userLogoutEvent;
+ /**
+ * User's password history
+ */
+ private List<PasswordHistory> userPasswordHistory;
+
+ /**
+ * EJB for user's password history
+ */
+ private UserPasswordHistorySessionBeanRemote userPasswordHistoryBean;
+
/**
* Default constructor
*/
// Try to lookup
this.loginBean = (UserLoginSessionBeanRemote) context.lookup("java:global/addressbook-ejb/login!org.mxchange.jusercore.model.login.UserLoginSessionBeanRemote"); //NOI18N
+ // Also find this
+ this.userPasswordHistoryBean = (UserPasswordHistorySessionBeanRemote) context.lookup(""); //NOI18N
+
// Defaul template is guest
this.baseTemplatePathName = GUEST_BASE_TEMPLATE_NAME;
} catch (final NamingException ex) {
// All fine here so set it here
this.setLoggedInUser(confirmedUser);
+ // Retrieve user's password list
+ this.userPasswordHistory = this.userPasswordHistoryBean.getUserPasswordHistory(confirmedUser);
+
// Set template to "login"
this.setBaseTemplatePathName(USER_BASE_TEMPLATE_NAME); //NOI18N
this.loggedInUser = loggedInUser;
}
+ @Override
+ public List<PasswordHistory> getUserPasswordHistory () {
+ return Collections.unmodifiableList(this.userPasswordHistory);
+ }
+
@Override
public boolean ifCurrentPasswordMatches () {
// The current password must be set and not empty
package org.mxchange.addressbook.beans.login;
import java.io.Serializable;
+import java.util.List;
+import javax.ejb.Local;
import org.mxchange.jusercore.model.user.User;
+import org.mxchange.jusercore.model.user.password_history.PasswordHistory;
/**
* An interface for registration web controllers
* <p>
* @author Roland Haeder<roland@mxchange.org>
*/
+@Local
public interface AddressbookUserLoginWebSessionController extends Serializable {
/**
String getCurrentPassword ();
/**
- * Checks whether the (previously entered) current password matches with from
- * the user instance.
+ * Checks whether the (previously entered) current password matches with
+ * from the user instance.
* <p>
* @return If current password matches
*/
boolean ifCurrentPasswordMatches ();
+ /**
+ * Getter for user's password history
+ * <p>
+ * @return User's password history
+ */
+ List<PasswordHistory> getUserPasswordHistory ();
+
}