mirror of
https://github.com/apache/struts.git
synced 2026-08-11 01:27:14 +00:00
1181c3d502
git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@471756 13f79535-47bb-0310-9956-ffa450edef68
123 lines
3.6 KiB
Java
123 lines
3.6 KiB
Java
/*
|
|
* $Id$
|
|
*
|
|
* Licensed to the Apache Software Foundation (ASF) under one
|
|
* or more contributor license agreements. See the NOTICE file
|
|
* distributed with this work for additional information
|
|
* regarding copyright ownership. The ASF licenses this file
|
|
* to you under the Apache License, Version 2.0 (the
|
|
* "License"); you may not use this file except in compliance
|
|
* with the License. You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing,
|
|
* software distributed under the License is distributed on an
|
|
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
* KIND, either express or implied. See the License for the
|
|
* specific language governing permissions and limitations
|
|
* under the License.
|
|
*/
|
|
|
|
package mailreader2;
|
|
|
|
import org.apache.struts.apps.mailreader.dao.User;
|
|
|
|
|
|
/**
|
|
* <p>Insert or update a User object to the persistent store. </p>
|
|
*/
|
|
public class Registration extends MailreaderSupport {
|
|
|
|
/**
|
|
* <p>Double check that there is not a valid User login. </p>
|
|
*
|
|
* @return True if there is not a valid User login
|
|
*/
|
|
private boolean isCreating() {
|
|
User user = getUser();
|
|
return (null == user) || (null == user.getDatabase());
|
|
}
|
|
|
|
/**
|
|
* <p> Retrieve User object to edit or null if User does not exist. </p>
|
|
*
|
|
* @return The "Success" result for this mapping
|
|
* @throws Exception on any error
|
|
*/
|
|
public String input() throws Exception {
|
|
|
|
if (isCreating()) {
|
|
createInputUser();
|
|
setTask(Constants.CREATE);
|
|
} else {
|
|
setTask(Constants.EDIT);
|
|
setUsername(getUser().getUsername());
|
|
setPassword(getUser().getPassword());
|
|
setPassword2(getUser().getPassword());
|
|
}
|
|
|
|
return INPUT;
|
|
}
|
|
|
|
/**
|
|
* <p>Insert or update a Registration.</p>
|
|
*
|
|
* @return The "outcome" result code
|
|
* @throws Exception on any error
|
|
*/
|
|
public String save() throws Exception {
|
|
return execute();
|
|
}
|
|
|
|
/**
|
|
* <p> Insert or update a User object to the persistent store. </p>
|
|
* <p/>
|
|
* <p> If a User is not logged in, then a new User is created and
|
|
* automatically logged in. Otherwise, the existing User is updated. </p>
|
|
*
|
|
* @return The "outcome" result code
|
|
* @throws Exception on any error
|
|
*/
|
|
public String execute()
|
|
throws Exception {
|
|
|
|
boolean creating = Constants.CREATE.equals(getTask());
|
|
creating = creating && isCreating(); // trust but verify
|
|
|
|
if (creating) {
|
|
|
|
User user = findUser(getUsername(), getPassword());
|
|
boolean haveUser = (user != null);
|
|
|
|
if (haveUser) {
|
|
addActionError(getText("error.username.unique"));
|
|
return INPUT;
|
|
}
|
|
|
|
copyUser(getUsername(), getPassword());
|
|
|
|
} else {
|
|
|
|
// FIXME: Any way to call the RegisrationSave validators from here?
|
|
String newPassword = getPassword();
|
|
if (newPassword != null) {
|
|
String confirmPassword = getPassword2();
|
|
boolean matches = ((null != confirmPassword)
|
|
&& (confirmPassword.equals(newPassword)));
|
|
if (matches) {
|
|
getUser().setPassword(newPassword);
|
|
} else {
|
|
addActionError(getText("error.password.match"));
|
|
return INPUT;
|
|
}
|
|
}
|
|
}
|
|
|
|
saveUser();
|
|
|
|
return SUCCESS;
|
|
}
|
|
|
|
}
|