/*
* RHQ Management Platform
* Copyright (C) 2005-2008 Red Hat, Inc.
* All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation version 2 of the License.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
package org.rhq.enterprise.gui.admin.user;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessage;
import org.rhq.enterprise.gui.legacy.action.BaseValidatorForm;
/**
* A subclass of <code>EditForm</code> representing the <em>EditUserProperties</em> form.
*/
public class EditForm extends BaseValidatorForm {
//-------------------------------------instance variables
private Integer id;
/**
* Holds value of property lastName.
*/
private String lastName;
/**
* Holds value of property firstName.
*/
private String firstName;
/**
* Holds value of property department.
*/
private String department;
/**
* Holds value of property name.
*/
private String name;
/**
* Holds value of property emailAddress.
*/
private String emailAddress;
private String smsAddress;
/**
* Holds value of property phoneNumber.
*/
private String phoneNumber;
/**
* Holds value of property enableLogin.
*/
private String enableLogin;
/**
* Period to use for refreshing dashboard/charts
*/
private String pageRefreshPeriod;
/**
* Period for canceling the calculation of the groupConfiguration
*/
private String groupConfigurationTimeout;
/**
* Are we editing the currently logged in user
*/
private boolean editingCurrentUser;
//-------------------------------------constructors
public EditForm() {
}
//-------------------------------------public methods
public Integer getId() {
return this.id;
}
public void setId(Integer id) {
this.id = id;
}
/**
* Getter for property lastName.
*
* @return Value of property lastName.
*/
public String getLastName() {
return this.lastName;
}
/**
* Setter for property lastName.
*
* @param lastName New value of property lastName.
*/
public void setLastName(String lastName) {
this.lastName = lastName;
}
/**
* Getter for property firstName.
*
* @return Value of property firstName.
*/
public String getFirstName() {
return this.firstName;
}
/**
* Setter for property firstName.
*
* @param firstName New value of property firstName.
*/
public void setFirstName(String firstName) {
this.firstName = firstName;
}
/**
* Getter for property department.
*
* @return Value of property department.
*/
public String getDepartment() {
return this.department;
}
/**
* Setter for property department.
*
* @param department New value of property department.
*/
public void setDepartment(String department) {
this.department = department;
}
/**
* Getter for property userName.
*
* @return Value of property userName.
*/
public String getName() {
return this.name;
}
/**
* Setter for property userName.
*
* @param userName New value of property userName.
*/
public void setName(String name) {
this.name = name;
}
/**
* Getter for property email.
*
* @return Value of property email.
*/
public String getEmailAddress() {
return this.emailAddress;
}
/**
* Setter for property email.
*
* @param email New value of property email.
*/
public void setEmailAddress(String emailAddress) {
this.emailAddress = emailAddress;
}
/**
* Getter for property phoneNumber.
*
* @return Value of property phoneNumber.
*/
public String getPhoneNumber() {
return this.phoneNumber;
}
/**
* Setter for property phoneNumber.
*
* @param phoneNumber New value of property phoneNumber.
*/
public void setPhoneNumber(String phoneNumber) {
this.phoneNumber = phoneNumber;
}
/**
* Getter for property enableLogin.
*
* @return Value of property enableLogin.
*/
public String getEnableLogin() {
return this.enableLogin;
}
/**
* Setter for property enableLogin.
*
* @param confirmPassword New value of property enableLogin.
*/
public void setEnableLogin(String enableLogin) {
this.enableLogin = enableLogin;
}
public String getSmsAddress() {
return this.smsAddress;
}
public void setSmsAddress(String add) {
this.smsAddress = add;
}
//-------- form methods-------------------------
// for validation, please see web/WEB-INF/validation/validation.xml
@Override
public String toString() {
StringBuffer s = new StringBuffer();
s.append("id=" + id + " ");
s.append("name=" + name + " firstName=" + firstName + " ");
s.append("lastName=" + lastName + " emailAddress=" + emailAddress + " ");
s.append("phoneNumber=" + phoneNumber + " ");
s.append("department=" + department + " ");
s.append("enableLogin=" + enableLogin + " ");
s.append("smsAddress=" + smsAddress + " ");
s.append("pageRefreshPeriod=" + pageRefreshPeriod + " ");
s.append("groupConfigurationTimeout=" + groupConfigurationTimeout + " ");
return s.toString();
}
/**
* Get the pageRefreshPeriod.
*
* @return the pageRefreshPeriod.
*/
public String getPageRefreshPeriod() {
return pageRefreshPeriod;
}
/**
* Set the pageRefreshPeriod.
*
* @param pageRefreshPeriod The pageRefreshPeriod to set.
*/
public void setPageRefreshPeriod(String pageRefreshPeriod) {
this.pageRefreshPeriod = pageRefreshPeriod;
}
/**
* Get the groupConfigurationTimeout.
*
* @return the groupConfigurationTimeout.
*/
public String getGroupConfigurationTimeout() {
return groupConfigurationTimeout;
}
/**
* Set the groupConfigurationTimeout.
*
* @param groupConfigurationTimeout The groupConfigurationTimeout to set.
*/
public void setGroupConfigurationTimeout(String groupConfigurationTimeout) {
this.groupConfigurationTimeout = groupConfigurationTimeout;
}
/**
* Get the editingCurrentUser.
*
* @return the editingCurrentUser.
*/
public boolean isEditingCurrentUser() {
return editingCurrentUser;
}
/**
* Set the editingCurrentUser.
*
* @param editingCurrentUser The editingCurrentUser to set.
*/
public void setEditingCurrentUser(boolean editingCurrentUser) {
this.editingCurrentUser = editingCurrentUser;
}
/**
* Validate the preferences associated with the current user if they are editing them.
*/
@Override
public ActionErrors validate(ActionMapping mapping, HttpServletRequest request) {
ActionErrors errors = super.validate(mapping, request);
if (shouldValidateMyPreferences(mapping, request)) {
int refreshPeriod = -1;
ActionMessage errorMessage = null;
try {
refreshPeriod = Integer.valueOf(getPageRefreshPeriod());
if (refreshPeriod < 0 || refreshPeriod > 86400) {
errorMessage = new ActionMessage("admin.user.error.mypreferences.pageRefreshPeriod.range");
}
} catch (NumberFormatException e) {
errorMessage = new ActionMessage("admin.user.error.mypreferences.pageRefreshPeriod");
}
if (errorMessage != null) {
if (errors == null) {
errors = new ActionErrors();
}
errors.add("pageRefreshPeriod", errorMessage);
}
int groupConfigTimeout = -1;
errorMessage = null;
try {
groupConfigTimeout = Integer.valueOf(getGroupConfigurationTimeout());
if (groupConfigTimeout < 30 || groupConfigTimeout > 300) {
errorMessage = new ActionMessage("admin.user.error.mypreferences.groupConfigurationTimeout.range");
}
} catch (NumberFormatException e) {
errorMessage = new ActionMessage("admin.user.error.mypreferences.groupConfigurationTimeout");
}
if (errorMessage != null) {
if (errors == null) {
errors = new ActionErrors();
}
errors.add("groupConfigurationTimeout", errorMessage);
}
}
return errors;
}
private boolean shouldValidateMyPreferences(ActionMapping mapping, HttpServletRequest request) {
return (isEditingCurrentUser() && super.shouldValidate(mapping, request));
}
@Override
public void reset(ActionMapping mapping, HttpServletRequest request) {
super.reset(mapping, request);
}
}