/**
* ESUP-Portail Helpdesk - Copyright (c) 2004-2009 ESUP-Portail consortium.
*/
package org.esupportail.helpdesk.domain.beans;
import java.io.Serializable;
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import org.esupportail.commons.services.logging.LoggerImpl;
import org.esupportail.commons.utils.Base64;
import org.esupportail.commons.utils.strings.StringUtils;
import org.esupportail.helpdesk.domain.ControlPanel;
import org.esupportail.helpdesk.domain.ControlPanelOrder;
import org.esupportail.helpdesk.domain.Search;
/**
* The class that represent users.
*/
public class User implements Serializable, Comparable<User> {
/** A constant for the start page. */
public static final String START_PAGE_WELCOME = "WELCOME";
/** A constant for the start page. */
public static final String START_PAGE_CONTROL_PANEL = "CONTROL_PANEL";
/** A constant for the start page. */
public static final String START_PAGE_SEARCH = "SEARCH";
/** A constant for the start page. */
public static final String START_PAGE_JOURNAL = "JOURNAL";
/** A constant for the start page. */
public static final String START_PAGE_FAQ = "FAQ";
/** A constant for the start page. */
public static final String START_PAGE_PREFERENCES = "PREFERENCES";
/** A constant for the start page. */
public static final String START_PAGE_ABOUT = "ABOUT";
/** A constant for the start page. */
public static final String START_PAGE_STATISTICS = "STATISTICS";
/** A constant for the start page. */
public static final String START_PAGE_BOOKMARKS = "BOOKMARKS";
/** A constant for page transitions. */
public static final String PAGE_TRANSITION_NONE = "NONE";
/** A constant for page transitions. */
public static final String PAGE_TRANSITION_TEXT = "TEXT";
/** A constant for page transitions. */
public static final String PAGE_TRANSITION_IMAGE = "IMAGE";
/** A constant for page transitions. */
public static final String PAGE_TRANSITION_TEXT_IMAGE = "TEXT_IMAGE";
/** A constant for page transitions. */
public static final String PAGE_TRANSITION_FREEZE = "FREEZE";
/** A constant for page transitions. */
public static final String PAGE_TRANSITION_FREEZE_TEXT = "FREEZE_TEXT";
/** A constant for page transitions. */
public static final String PAGE_TRANSITION_FREEZE_IMAGE = "FREEZE_IMAGE";
/** A constant for page transitions. */
public static final String PAGE_TRANSITION_FREEZE_TEXT_IMAGE = "FREEZE_TEXT_IMAGE";
/**
* The maximum length of encoded attributes.
*/
private static final int ATTRIBUTES_ENCODING_MAX_LENGTH = 4096;
/**
* The separator between attributes.
*/
private static final String ATTRIBUTES_ENCODING_SEPARATOR = ";";
/**
* The equal sign between the name and value of the attributes.
*/
private static final String ATTRIBUTES_ENCODING_EQUAL_SIGN = ":";
// /**
// * A logger.
// */
// private static final Logger LOGGER = new LoggerImpl(User.class);
/**
* The serialization id.
*/
private static final long serialVersionUID = 664045960340919141L;
/**
* Indicates if the user is a local user, authenticated with uPortal or CAS (and existing in LDAP).
* False means that the user is authenticated with his email and a password.
*/
private boolean localUser;
/**
* The password, null for local users.
*/
private String password;
/**
* Id of the user.
*/
private String id;
/**
* The auth type.
*/
private String authType;
/**
* Real id of the user.
*/
private String realId;
/**
* The attributes.
*/
private String encodedAttributes;
/**
* Display Name of the user.
*/
private String displayName;
/**
* Email of the user (memorized for Shibboleth users.
*/
private String email;
/**
* True for administrators.
*/
private boolean admin;
/**
* The prefered language.
*/
private String language;
/**
* The department filter of the user control panel.
*/
private Department controlPanelUserDepartmentFilter;
/**
* The department filter of the manager control panel.
*/
private Department controlPanelManagerDepartmentFilter;
/**
* The category filter of the control panel.
*/
private Category controlPanelCategoryFilter;
/**
* True to select only category members tickets on the control panel.
*/
private Boolean controlPanelCategoryMemberFilter;
/**
* The status filter of the user control panel.
*/
private String controlPanelUserStatusFilter;
/**
* The status filter of the manager control panel.
*/
private String controlPanelManagerStatusFilter;
/**
* The involvement filter of the control panel for the user interface.
*/
private String controlPanelUserInvolvementFilter;
/**
* The involvement filter of the control panel for the manager interface.
*/
private String controlPanelManagerInvolvementFilter;
/**
* The interface of the control panel.
*/
private Boolean controlPanelUserInterface;
/**
* The page size of the control panel.
*/
private int controlPanelPageSize;
/**
* True for the advanced search, false for simple.
*/
private Boolean advancedSearch;
/**
* The department filter of the search interface.
*/
private Department searchDepartmentFilter;
/**
* The search type filter.
*/
private String searchTypeFilter;
/**
* True to sort search results by date.
*/
private Boolean searchSortByDate;
/**
* The auth secret.
*/
private String authSecret;
/**
* The validity of the auth secret.
*/
private Timestamp authLimit;
/**
* True if the user monitors the tickets (s)he owns.
*/
private Boolean ownerMonitoring;
/**
* True if the user monitors the tickets (s)he is is invited for.
*/
private Boolean invitedMonitoring;
/**
* True if the user monitors his bookmarked tickets.
*/
private Boolean bookmarkMonitoring;
/**
* The start page.
*/
private String startPage;
/**
* True to show help when entering tickets.
*/
private Boolean showAddTicketHelp;
/**
* True to show a popup on ticket closure.
*/
private Boolean showPopupOnClosure;
/**
* True to show tickets after closure.
*/
private Boolean showTicketAfterClosure;
/**
* The department filter for the journal page.
*/
private Department journalDepartmentFilter;
/**
* The page size for the journal page.
*/
private Integer journalPageSize;
/**
* The columns to print on the control panel.
*/
private String controlPanelColumns;
/**
* True to receive ticket reports.
*/
private Boolean receiveTicketReports;
/**
* True to receive FAQ reports.
*/
private Boolean receiveFaqReports;
/**
* True to receive all the ticket reports in one.
*/
private Boolean receiveTicketReportsAllInOne;
/**
* True to receive manager monitoring.
*/
private Boolean receiveManagerMonitoring;
/**
* The order of the control panel.
*/
private String storedControlPanelOrder;
/**
* The order of the control panel.
*/
private ControlPanelOrder controlPanelOrder;
/**
* The refresh delay of the control panel.
*/
private Integer controlPanelRefreshDelay;
/**
* The transition between pages.
*/
private String pageTransition;
/**
* The search date 1.
*/
private Timestamp searchDate1;
/**
* The search date 2.
*/
private Timestamp searchDate2;
/**
* The last time the department selection was valid (for the user).
*/
private Timestamp departmentSelectionContextTime;
/**
* True to receive expiration emails.
*/
private Boolean expirationMonitoring;
/**
* Bean constructor.
*/
private User() {
super();
localUser = false;
admin = false;
controlPanelUserInterface = true;
controlPanelCategoryMemberFilter = false;
receiveTicketReports = true;
receiveFaqReports = true;
receiveTicketReportsAllInOne = true;
receiveManagerMonitoring = true;
controlPanelUserStatusFilter = ControlPanel.STATUS_FILTER_ANY;
controlPanelManagerStatusFilter = ControlPanel.STATUS_FILTER_ANY;
controlPanelUserInvolvementFilter = ControlPanel.USER_INVOLVEMENT_FILTER_ANY;
controlPanelManagerInvolvementFilter = ControlPanel.MANAGER_INVOLVEMENT_FILTER_ANY;
searchTypeFilter = Search.TYPE_FILTER_ALL;
bookmarkMonitoring = true;
expirationMonitoring = true;
}
/**
* Copy a user.
* @param u
*/
public User(final User u) {
setAdmin(u.getAdmin());
setAdvancedSearch(u.getAdvancedSearch());
setAuthLimit(u.getAuthLimit());
setAuthSecret(u.getAuthSecret());
setAuthType(u.getAuthType());
setBookmarkMonitoring(u.getBookmarkMonitoring());
setControlPanelCategoryFilter(u.getControlPanelCategoryFilter());
setControlPanelCategoryMemberFilter(u.getControlPanelCategoryMemberFilter());
setControlPanelColumns(u.getControlPanelColumns());
setControlPanelUserDepartmentFilter(u.getControlPanelUserDepartmentFilter());
setControlPanelManagerDepartmentFilter(u.getControlPanelManagerDepartmentFilter());
setControlPanelManagerInvolvementFilter(u.getControlPanelManagerInvolvementFilter());
setControlPanelOrder(u.getControlPanelOrder());
setControlPanelPageSize(u.getControlPanelPageSize());
setControlPanelRefreshDelay(u.getControlPanelRefreshDelay());
setControlPanelUserStatusFilter(u.getControlPanelUserStatusFilter());
setControlPanelManagerStatusFilter(u.getControlPanelManagerStatusFilter());
setControlPanelUserInterface(u.getControlPanelUserInterface());
setControlPanelUserInvolvementFilter(u.getControlPanelUserInvolvementFilter());
setDisplayName(u.getDisplayName());
setEncodedAttributes(u.getEncodedAttributes());
setId(u.getId());
setInvitedMonitoring(u.getInvitedMonitoring());
setJournalDepartmentFilter(u.getJournalDepartmentFilter());
setJournalPageSize(u.getJournalPageSize());
setLanguage(u.getLanguage());
setOwnerMonitoring(u.getOwnerMonitoring());
setPageTransition(u.getPageTransition());
setPassword(u.getPassword());
setRealId(u.getRealId());
setReceiveManagerMonitoring(u.getReceiveManagerMonitoring());
setReceiveTicketReports(u.getReceiveTicketReports());
setReceiveFaqReports(u.getReceiveFaqReports());
setReceiveTicketReportsAllInOne(u.getReceiveTicketReportsAllInOne());
setSearchDepartmentFilter(u.getSearchDepartmentFilter());
setSearchSortByDate(u.getSearchSortByDate());
setSearchTypeFilter(u.getSearchTypeFilter());
setShowAddTicketHelp(u.getShowAddTicketHelp());
setShowPopupOnClosure(u.getShowPopupOnClosure());
setShowTicketAfterClosure(u.getShowTicketAfterClosure());
setStartPage(u.getStartPage());
setStoredControlPanelOrder(u.getStoredControlPanelOrder());
setEmail(u.getEmail());
setSearchDate1(u.getSearchDate1());
setSearchDate2(u.getSearchDate2());
setDepartmentSelectionContextTime(u.getDepartmentSelectionContextTime());
setExpirationMonitoring(u.getExpirationMonitoring());
}
/**
* Bean constructor.
* @param id
* @param authType
* @param realId
*/
public User(
final String id,
final String authType,
final String realId) {
this();
this.id = id;
this.authType = authType;
this.realId = realId;
}
/**
* @see java.lang.Object#equals(java.lang.Object)
*/
@Override
public boolean equals(final Object obj) {
if (obj == null) {
return false;
}
if (!(obj instanceof User)) {
return false;
}
return id.equals(((User) obj).getId());
}
/**
* @see java.lang.Object#hashCode()
*/
@Override
public int hashCode() {
return super.hashCode();
}
/**
* @param u
* @return an integer.
* @see java.lang.Comparable#compareTo(java.lang.Object)
*/
@Override
public int compareTo(final User u) {
if (u == null) {
return 0;
}
return getId().compareTo(u.getId());
}
/**
* @see java.lang.Object#toString()
*/
@Override
public String toString() {
String passwordString = null;
if (!localUser) {
passwordString = "********";
}
return getClass().getSimpleName() + "#" + hashCode() + "["
+ "id=[" + id + "]"
+ ", displayName=[" + displayName + "]"
+ ", email=[" + email + "]"
+ ", localUser=[" + localUser + "]"
+ ", password=[" + passwordString + "]"
+ ", admin=[" + admin + "]"
+ ", language=[" + language + "]"
+ ", searchDepartmentFilter=" + searchDepartmentFilter
+ ", searchTypeFilter=[" + searchTypeFilter + "]"
+ "]";
}
/**
* @return the id of the user.
*/
public String getId() {
return id;
}
/**
* @param id
*/
public void setId(final String id) {
this.id = StringUtils.nullIfEmpty(id);
}
/**
* @return the authType
*/
public String getAuthType() {
return authType;
}
/**
* @param authType the authType to set
*/
public void setAuthType(final String authType) {
this.authType = authType;
}
/**
* @return the realId
*/
public String getRealId() {
return realId;
}
/**
* @param realId the realId to set
*/
public void setRealId(final String realId) {
this.realId = realId;
}
/**
* @return Returns the displayName.
*/
public String getDisplayName() {
return this.displayName;
}
/**
* @param displayName The displayName to set.
*/
public void setDisplayName(final String displayName) {
this.displayName = StringUtils.nullIfEmpty(displayName);
}
/**
* @param admin The admin to set.
*/
public void setAdmin(final boolean admin) {
this.admin = admin;
}
/**
* @return Returns the admin.
*/
public boolean getAdmin() {
return this.admin;
}
/**
* @return the language
*/
public String getLanguage() {
return language;
}
/**
* @param language the language to set
*/
public void setLanguage(final String language) {
this.language = StringUtils.nullIfEmpty(language);
}
/**
* @return the password
*/
public String getPassword() {
return password;
}
/**
* @param password the password to set
*/
public void setPassword(final String password) {
this.password = password;
}
/**
* @return the controlPanelUserDepartmentFilter
*/
public Department getControlPanelUserDepartmentFilter() {
return controlPanelUserDepartmentFilter;
}
/**
* @param controlPanelUserDepartmentFilter the controlPanelUserDepartmentFilter to set
*/
public void setControlPanelUserDepartmentFilter(
final Department controlPanelUserDepartmentFilter) {
this.controlPanelUserDepartmentFilter = controlPanelUserDepartmentFilter;
}
/**
* @return the controlPanelManagerDepartmentFilter
*/
public Department getControlPanelManagerDepartmentFilter() {
return controlPanelManagerDepartmentFilter;
}
/**
* @param controlPanelManagerDepartmentFilter the controlPanelManagerDepartmentFilter to set
*/
public void setControlPanelManagerDepartmentFilter(
final Department controlPanelManagerDepartmentFilter) {
this.controlPanelManagerDepartmentFilter = controlPanelManagerDepartmentFilter;
}
/**
* @return the controlPanelCategoryFilter
*/
public Category getControlPanelCategoryFilter() {
if (controlPanelManagerDepartmentFilter == null) {
return null;
}
return controlPanelCategoryFilter;
}
/**
* @param controlPanelCategoryFilter the controlPanelCategoryFilter to set
*/
public void setControlPanelCategoryFilter(final Category controlPanelCategoryFilter) {
this.controlPanelCategoryFilter = controlPanelCategoryFilter;
}
/**
* @return the controlPanelUserStatusFilter
*/
public String getControlPanelUserStatusFilter() {
if (controlPanelUserStatusFilter == null) {
return ControlPanel.STATUS_FILTER_ANY;
}
return controlPanelUserStatusFilter;
}
/**
* @param controlPanelUserStatusFilter the controlPanelUserStatusFilter to set
*/
public void setControlPanelUserStatusFilter(final String controlPanelUserStatusFilter) {
this.controlPanelUserStatusFilter = controlPanelUserStatusFilter;
}
/**
* @return the controlPanelManagerStatusFilter
*/
public String getControlPanelManagerStatusFilter() {
if (controlPanelManagerStatusFilter == null) {
return ControlPanel.STATUS_FILTER_ANY;
}
return controlPanelManagerStatusFilter;
}
/**
* @param controlPanelManagerStatusFilter the controlPanelManagerStatusFilter to set
*/
public void setControlPanelManagerStatusFilter(final String controlPanelManagerStatusFilter) {
this.controlPanelManagerStatusFilter = controlPanelManagerStatusFilter;
}
/**
* @return the controlPanelUserInterface
*/
public Boolean getControlPanelUserInterface() {
if (controlPanelUserInterface == null) {
return true;
}
return controlPanelUserInterface;
}
/**
* @param controlPanelUserInterface the controlPanelUserInterface to set
*/
public void setControlPanelUserInterface(final Boolean controlPanelUserInterface) {
this.controlPanelUserInterface = controlPanelUserInterface;
}
/**
* @return the controlPanelManagerInvolvementFilter
*/
public String getControlPanelManagerInvolvementFilter() {
return controlPanelManagerInvolvementFilter;
}
/**
* @param controlPanelManagerInvolvementFilter the controlPanelManagerInvolvementFilter to set
*/
public void setControlPanelManagerInvolvementFilter(
final String controlPanelManagerInvolvementFilter) {
this.controlPanelManagerInvolvementFilter = controlPanelManagerInvolvementFilter;
}
/**
* @return the controlPanelUserInvolvementFilter
*/
public String getControlPanelUserInvolvementFilter() {
return controlPanelUserInvolvementFilter;
}
/**
* @param controlPanelUserInvolvementFilter the controlPanelUserInvolvementFilter to set
*/
public void setControlPanelUserInvolvementFilter(
final String controlPanelUserInvolvementFilter) {
this.controlPanelUserInvolvementFilter = controlPanelUserInvolvementFilter;
}
/**
* @return the searchDepartmentFilter
*/
public Department getSearchDepartmentFilter() {
return searchDepartmentFilter;
}
/**
* @param searchDepartmentFilter the searchDepartmentFilter to set
*/
public void setSearchDepartmentFilter(final Department searchDepartmentFilter) {
this.searchDepartmentFilter = searchDepartmentFilter;
}
/**
* @return the searchTypeFilter
*/
public String getSearchTypeFilter() {
return searchTypeFilter;
}
/**
* @param searchTypeFilter the searchTypeFilter to set
*/
public void setSearchTypeFilter(final String searchTypeFilter) {
this.searchTypeFilter = searchTypeFilter;
}
/**
* @return the controlPanelPageSize
*/
public int getControlPanelPageSize() {
return controlPanelPageSize;
}
/**
* @param controlPanelPageSize the controlPanelPageSize to set
*/
public void setControlPanelPageSize(final int controlPanelPageSize) {
this.controlPanelPageSize = controlPanelPageSize;
}
/**
* @return the authLimit
*/
public Timestamp getAuthLimit() {
return authLimit;
}
/**
* @param authLimit the authLimit to set
*/
public void setAuthLimit(final Timestamp authLimit) {
this.authLimit = authLimit;
}
/**
* @return the authSecret
*/
public String getAuthSecret() {
return authSecret;
}
/**
* @param authSecret the authSecret to set
*/
public void setAuthSecret(final String authSecret) {
this.authSecret = authSecret;
}
/**
* @return the ownerMonitoring
*/
public Boolean getOwnerMonitoring() {
if (ownerMonitoring == null) {
return true;
}
return ownerMonitoring;
}
/**
* @param ownerMonitoring the ownerMonitoring to set
*/
public void setOwnerMonitoring(final Boolean ownerMonitoring) {
this.ownerMonitoring = ownerMonitoring;
}
/**
* @return the invitedMonitoring
*/
public Boolean getInvitedMonitoring() {
if (invitedMonitoring == null) {
return true;
}
return invitedMonitoring;
}
/**
* @param invitedMonitoring the invitedMonitoring to set
*/
public void setInvitedMonitoring(final Boolean invitedMonitoring) {
this.invitedMonitoring = invitedMonitoring;
}
/**
* @return the startPage
*/
public String getStartPage() {
return startPage;
}
/**
* @param startPage the startPage to set
*/
public void setStartPage(final String startPage) {
this.startPage = startPage;
}
/**
* @return the showAddTicketHelp
*/
public Boolean getShowAddTicketHelp() {
if (showAddTicketHelp == null) {
return true;
}
return showAddTicketHelp;
}
/**
* @param showAddTicketHelp the showAddTicketHelp to set
*/
public void setShowAddTicketHelp(final Boolean showAddTicketHelp) {
this.showAddTicketHelp = showAddTicketHelp;
}
/**
* @return the showPopupOnClosure
*/
public Boolean getShowPopupOnClosure() {
if (showPopupOnClosure == null) {
return true;
}
return showPopupOnClosure;
}
/**
* @param showPopupOnClosure the showPopupOnClosure to set
*/
public void setShowPopupOnClosure(final Boolean showPopupOnClosure) {
this.showPopupOnClosure = showPopupOnClosure;
}
/**
* @return the showTicketAfterClosure
*/
public Boolean getShowTicketAfterClosure() {
if (showTicketAfterClosure == null) {
return true;
}
return showTicketAfterClosure;
}
/**
* @param showTicketAfterClosure the showPopupOnClosure to set
*/
public void setShowTicketAfterClosure(final Boolean showTicketAfterClosure) {
this.showTicketAfterClosure = showTicketAfterClosure;
}
/**
* @return the advancedSearch
*/
public Boolean getAdvancedSearch() {
if (advancedSearch == null) {
return false;
}
return advancedSearch;
}
/**
* @param advancedSearch the advancedSearch to set
*/
public void setAdvancedSearch(
final Boolean advancedSearch) {
this.advancedSearch = advancedSearch;
}
/**
* @return the journalPageSize
*/
public Integer getJournalPageSize() {
return journalPageSize;
}
/**
* @param journalPageSize the journalPageSize to set
*/
public void setJournalPageSize(final Integer journalPageSize) {
this.journalPageSize = journalPageSize;
}
/**
* @return the journalDepartmentFilter
*/
public Department getJournalDepartmentFilter() {
return journalDepartmentFilter;
}
/**
* @param journalDepartmentFilter the journalDepartmentFilter to set
*/
public void setJournalDepartmentFilter(final Department journalDepartmentFilter) {
this.journalDepartmentFilter = journalDepartmentFilter;
}
/**
* @return the searchSortByDate
*/
public Boolean getSearchSortByDate() {
if (searchSortByDate == null) {
return Boolean.FALSE;
}
return searchSortByDate;
}
/**
* @param searchSortByDate the searchSortByDate to set
*/
public void setSearchSortByDate(final Boolean searchSortByDate) {
this.searchSortByDate = searchSortByDate;
}
/**
* @return the controlPanelColumns
*/
public String getControlPanelColumns() {
return controlPanelColumns;
}
/**
* @param controlPanelColumns the controlPanelColumns to set
*/
public void setControlPanelColumns(final String controlPanelColumns) {
this.controlPanelColumns = controlPanelColumns;
}
/**
* @return the controlPanelCategoryMemberFilter
*/
public Boolean getControlPanelCategoryMemberFilter() {
if (controlPanelCategoryMemberFilter == null) {
return false;
}
return controlPanelCategoryMemberFilter;
}
/**
* @param controlPanelCategoryMemberFilter the controlPanelCategoryMemberFilter to set
*/
public void setControlPanelCategoryMemberFilter(
final Boolean controlPanelCategoryMemberFilter) {
this.controlPanelCategoryMemberFilter = controlPanelCategoryMemberFilter;
}
/**
* @return the receiveTicketReports
*/
public Boolean getReceiveTicketReports() {
if (receiveTicketReports == null) {
return true;
}
return receiveTicketReports;
}
/**
* @param receiveTicketReports the receiveTicketReports to set
*/
public void setReceiveTicketReports(final Boolean receiveTicketReports) {
this.receiveTicketReports = receiveTicketReports;
}
/**
* @return the receiveFaqReports
*/
public Boolean getReceiveFaqReports() {
if (receiveFaqReports == null) {
return true;
}
return receiveFaqReports;
}
/**
* @param receiveFaqReports the receiveFaqReports to set
*/
public void setReceiveFaqReports(final Boolean receiveFaqReports) {
this.receiveFaqReports = receiveFaqReports;
}
/**
* @return the receiveManagerMonitoring
*/
public Boolean getReceiveManagerMonitoring() {
if (receiveManagerMonitoring == null) {
return true;
}
return receiveManagerMonitoring;
}
/**
* @param receiveManagerMonitoring the receiveManagerMonitoring to set
*/
public void setReceiveManagerMonitoring(final Boolean receiveManagerMonitoring) {
this.receiveManagerMonitoring = receiveManagerMonitoring;
}
/**
* @return the storedControlPanelOrder
*/
public String getStoredControlPanelOrder() {
return storedControlPanelOrder;
}
/**
* @param storedControlPanelOrder the storedControlPanelOrder to set
*/
public void setStoredControlPanelOrder(final String storedControlPanelOrder) {
this.storedControlPanelOrder = storedControlPanelOrder;
}
/**
* @return the controlPanelOrder
*/
public ControlPanelOrder getControlPanelOrder() {
if (controlPanelOrder == null) {
controlPanelOrder = new ControlPanelOrder(storedControlPanelOrder);
}
return controlPanelOrder;
}
/**
* @param controlPanelOrder the controlPanelOrder to set
*/
public void setControlPanelOrder(final ControlPanelOrder controlPanelOrder) {
this.controlPanelOrder = controlPanelOrder;
}
/**
* @return the controlPanelRefreshDelay
*/
public Integer getControlPanelRefreshDelay() {
if (controlPanelRefreshDelay == null) {
return 0;
}
return controlPanelRefreshDelay;
}
/**
* @param controlPanelRefreshDelay the controlPanelRefreshDelay to set
*/
public void setControlPanelRefreshDelay(final Integer controlPanelRefreshDelay) {
if (controlPanelRefreshDelay == null || controlPanelRefreshDelay <= 0) {
this.controlPanelRefreshDelay = null;
}
this.controlPanelRefreshDelay = controlPanelRefreshDelay;
}
/**
* @return the receiveTicketReportsAllInOne
*/
public Boolean getReceiveTicketReportsAllInOne() {
if (this.receiveTicketReportsAllInOne == null) {
return true;
}
return receiveTicketReportsAllInOne;
}
/**
* @param receiveTicketReportsAllInOne the receiveTicketReportsAllInOne to set
*/
public void setReceiveTicketReportsAllInOne(final Boolean receiveTicketReportsAllInOne) {
this.receiveTicketReportsAllInOne = receiveTicketReportsAllInOne;
}
/**
* @return the pageTransition
*/
public String getPageTransition() {
return pageTransition;
}
/**
* @param pageTransition the pageTransition to set
*/
public void setPageTransition(final String pageTransition) {
this.pageTransition = pageTransition;
}
/**
* @return true to show the submit popup image.
*/
public boolean isShowSubmitPopupText() {
return pageTransition == null
|| PAGE_TRANSITION_TEXT.equals(pageTransition)
|| PAGE_TRANSITION_TEXT_IMAGE.equals(pageTransition)
|| PAGE_TRANSITION_FREEZE_TEXT.equals(pageTransition)
|| PAGE_TRANSITION_FREEZE_TEXT_IMAGE.equals(pageTransition);
}
/**
* @return true to show the submit popup image.
*/
public boolean isShowSubmitPopupImage() {
return pageTransition == null
|| PAGE_TRANSITION_IMAGE.equals(pageTransition)
|| PAGE_TRANSITION_TEXT_IMAGE.equals(pageTransition)
|| PAGE_TRANSITION_FREEZE_IMAGE.equals(pageTransition)
|| PAGE_TRANSITION_FREEZE_TEXT_IMAGE.equals(pageTransition);
}
/**
* @return true to freeze the screen on submit.
*/
public boolean isFreezeScreenOnSubmit() {
return pageTransition == null
|| PAGE_TRANSITION_FREEZE.equals(pageTransition)
|| PAGE_TRANSITION_FREEZE_TEXT.equals(pageTransition)
|| PAGE_TRANSITION_FREEZE_IMAGE.equals(pageTransition)
|| PAGE_TRANSITION_FREEZE_TEXT_IMAGE.equals(pageTransition);
}
/**
* @return the encodedAttributes
*/
protected String getEncodedAttributes() {
return encodedAttributes;
}
/**
* @param encodedAttributes the encodedAttributes to set
*/
protected void setEncodedAttributes(final String encodedAttributes) {
this.encodedAttributes = encodedAttributes;
}
/**
* @return the encodedAttributes
*/
public Map<String, List<String>> getAttributes() {
Map<String, List<String>> result = new HashMap<String, List<String>>();
if (encodedAttributes == null) {
return result;
}
for (String nameValue : encodedAttributes.split(ATTRIBUTES_ENCODING_SEPARATOR)) {
String[] parts = nameValue.split(ATTRIBUTES_ENCODING_EQUAL_SIGN);
if (parts != null && parts.length == 2) {
String name = StringUtils.nullIfEmpty(parts[0]);
String value = StringUtils.nullIfEmpty(parts[1]);
if (name != null && value != null) {
List<String> values = result.get(name);
if (values == null) {
values = new ArrayList<String>();
result.put(name, values);
}
String decodedValue = new String(Base64.decode(value));
values.add(decodedValue);
}
}
}
return result;
}
/**
* @param attributes the attributes to set
*/
public void setAttributes(final Map<String, List<String>> attributes) {
encodedAttributes = null;
if (attributes != null) {
Set<String> keys = attributes.keySet();
if (!keys.isEmpty()) {
String separator = "";
for (String key : keys) {
if (key != null) {
List<String> values = attributes.get(key);
for (String value : values) {
if (org.springframework.util.StringUtils.hasText(value)) {
if (encodedAttributes == null) {
encodedAttributes = "";
}
encodedAttributes +=
separator + key
+ ATTRIBUTES_ENCODING_EQUAL_SIGN
+ Base64.encodeBytes(
value.getBytes(), Base64.DONT_BREAK_LINES);
separator = ATTRIBUTES_ENCODING_SEPARATOR;
}
}
}
}
}
}
if (encodedAttributes != null && encodedAttributes.length() >= ATTRIBUTES_ENCODING_MAX_LENGTH) {
throw new IllegalArgumentException("too many Shibboleth attributes!");
}
}
/**
* @return the bookmarkMonitoring
*/
public Boolean getBookmarkMonitoring() {
if (bookmarkMonitoring == null) {
return true;
}
return bookmarkMonitoring;
}
/**
* @param bookmarkMonitoring the bookmarkMonitoring to set
*/
public void setBookmarkMonitoring(final Boolean bookmarkMonitoring) {
this.bookmarkMonitoring = bookmarkMonitoring;
}
/**
* @return the email
*/
public String getEmail() {
return email;
}
/**
* @param email the email to set
*/
public void setEmail(final String email) {
this.email = email;
}
/**
* @return the searchDate1
*/
public Timestamp getSearchDate1() {
return searchDate1;
}
/**
* @param searchDate1 the searchDate1 to set
*/
public void setSearchDate1(final Timestamp searchDate1) {
this.searchDate1 = searchDate1;
}
/**
* @return the searchDate2
*/
public Timestamp getSearchDate2() {
return searchDate2;
}
/**
* @param searchDate2 the searchDate2 to set
*/
public void setSearchDate2(final Timestamp searchDate2) {
this.searchDate2 = searchDate2;
}
/**
* @return the departmentSelectionContextTime
*/
public Timestamp getDepartmentSelectionContextTime() {
return departmentSelectionContextTime;
}
/**
* @param departmentSelectionContextTime the departmentSelectionContextTime to set
*/
public void setDepartmentSelectionContextTime(
final Timestamp departmentSelectionContextTime) {
this.departmentSelectionContextTime = departmentSelectionContextTime;
}
/**
* Update the department selection context time.
*/
public void updateDepartmentSelectionContextTime() {
setDepartmentSelectionContextTime(new Timestamp(System.currentTimeMillis()));
new LoggerImpl(User.class).info("updated the department selection context time for user [" + getId() + "]");
}
/**
* @return the expirationMonitoring
*/
public Boolean getExpirationMonitoring() {
if (expirationMonitoring == null) {
return true;
}
return expirationMonitoring;
}
/**
* @param expirationMonitoring the expirationMonitoring to set
*/
public void setExpirationMonitoring(final Boolean expirationMonitoring) {
this.expirationMonitoring = expirationMonitoring;
}
}