Fields Summary |
---|
private Map | application Field to store application context or its proxy.
The application context lasts for the life of the application. A
reference to the database is stored in the application context at
startup. |
private Map | session Field to store session context, or its proxy. |
private String | task Field to store workflow task.
The Task is used to track the state of the CRUD workflows. It can be
set to Constant.CREATE, Constant.EDIT, or Constant.DELETE as
needed. |
private String | token Field to store double-submit guard. |
private String | host Field to store Subscription host.
The host is an immutable property of the Subscrtion DAP object, so
we need to store it locally until we are ready to create the
Subscription. |
private String | password Field to store User password property.
The User DAO object password proerty is immutable, so we store it
locally until we are ready to create the object. |
private String | password2 Field to store the User password confirmation.
When a User object is created, we ask the client to enter the
password twice, to help ensure the password is being typed
correctly. |
private String | username Field to store User username.
The User DAO object password proerty is immutable, so we store it
locally until we are ready to create the object. |
protected Log | log Log instance for this application.
|
Methods Summary |
---|
public java.lang.String | cancel()Return CANCEL so apropriate result can be selected.
return Constants.CANCEL;
|
protected void | copySubscription(org.apache.struts.apps.mailreader.dao.Subscription source, org.apache.struts.apps.mailreader.dao.Subscription target)Convenience method to copy Subscription properties.
if ((source==null) || (target==null)) return;
target.setAutoConnect(source.getAutoConnect());
target.setPassword(source.getPassword());
target.setType(source.getType());
target.setUsername(source.getUsername());
|
public void | copySubscription(java.lang.String host)Create a new Subscription from the current Subscription object,
making the new Subscription the current Subscription.
Usually, the "current" Subscription is a temporary object being used
to capture input values.
Subscription input = getSubscription();
Subscription sub = createSubscription(host);
if (null != sub) {
copySubscription(input, sub);
setSubscription(sub);
setHost(sub.getHost());
}
|
protected void | copyUser(org.apache.struts.apps.mailreader.dao.User source, org.apache.struts.apps.mailreader.dao.User target)Convenience method to copy User properties.
if ((source==null) || (target==null)) return;
target.setFromAddress(source.getFromAddress());
target.setFullName(source.getFullName());
target.setPassword(source.getPassword());
target.setReplyToAddress(source.getReplyToAddress());
|
public void | copyUser(java.lang.String _username, java.lang.String _password)Use the current User object to create a new User object, and make
the new User object the authenticated user.
The "current" User object is usually a temporary object being used
to capture input.
User input = getUser();
input.setPassword(_password);
User user = createUser(_username, _password);
if (null != user) {
copyUser(input,user);
setUser(user);
}
|
public void | createInputSubscription()Provide a "temporary" User Subscription object that can be used to
capture input values.
Subscription sub = new MemorySubscription(getUser(), null);
setSubscription(sub);
setHost(sub.getHost());
|
public void | createInputUser()
User user = new MemoryUser(null, null);
setUser(user);
|
public org.apache.struts.apps.mailreader.dao.Subscription | createSubscription(java.lang.String host)Provide new User Subscription object for the given host, or null if
the host is not unique.
Subscription sub;
sub = findSubscription(host);
if (null != sub) {
// FIXME - localization - "error.host.unique")
addFieldError(Constants.HOST,"That hostname is already defined");
return null;
}
return getUser().createSubscription(host);
|
public org.apache.struts.apps.mailreader.dao.User | createUser(java.lang.String username, java.lang.String password) Verify input for creating a new user, create the user, and process
the login.
UserDatabase database = getDatabase();
User user;
try {
user = database.findUser(username);
}
catch (ExpiredPasswordException e) {
user = getUser(); // Just so that it is not null
}
if (user != null) {
this.addFieldError("username", "error.username.unique");
return null;
}
return database.createUser(username);
|
public org.apache.struts.apps.mailreader.dao.Subscription | findSubscription(java.lang.String host) Obtain User Subscription object for the given host, or return null
if not found.
It would be possible for this code to throw a NullPointerException,
but the ExceptionHandler in the xwork.xml will catch that for us.
Subscription subscription;
subscription = getUser().findSubscription(host);
return subscription;
|
public org.apache.struts.apps.mailreader.dao.Subscription | findSubscription()Obtain uSER Subscription for the local Host property.
Usually, the host property will be set from the client request,
because it was embedded in a link to the Subcription action.
return findSubscription(getHost());
|
public org.apache.struts.apps.mailreader.dao.User | findUser(java.lang.String username, java.lang.String password)Obtain User object from database, or return null if the credentials
are not found or invalid.
// FIXME: Stupid testing hack to compensate for inadequate DAO layer
if (Constants.EXPIRED_PASSWORD_EXCEPTION.equals(username)) {
throw new ExpiredPasswordException(Constants.EXPIRED_PASSWORD_EXCEPTION);
}
User user = getDatabase().findUser(username);
if ((user != null) && !user.getPassword().equals(password)) {
user = null;
}
if (user == null) {
this.addFieldError(Constants.PASSWORD_MISMATCH_FIELD,
getText("error.password.mismatch"));
}
return user;
|
public java.util.Map | getApplication()Provide application context.
return application;
|
public org.apache.struts.apps.mailreader.dao.UserDatabase | getDatabase()Provide reference to UserDatabase, or null if the database is not
available.
Object db = getApplication().get(Constants.DATABASE_KEY);
if (db == null) {
this.addActionError(getText("error.database.missing"));
}
return (UserDatabase) db;
|
public java.lang.String | getHost()Provide tSubscription host.
return host;
|
public java.lang.String | getPassword()Provide User password
return password;
|
public java.lang.String | getPassword2()Provide the User password confirmation.
return password2;
|
public java.util.Map | getSession()Provide session context.
return session;
|
public org.apache.struts.apps.mailreader.dao.Subscription | getSubscription()Obtain the cached Subscription object, if any.
return (Subscription) getSession().get(Constants.SUBSCRIPTION_KEY);
|
public java.lang.String | getSubscriptionHost()Provide MailServer Host for current User Subscription.
Subscription sub = getSubscription();
if (null == sub) {
return null;
}
return sub.getHost();
|
public java.lang.String | getTask()Provide worklow task.
return task;
|
public java.lang.String | getToken()Provide Token.
return token;
|
public org.apache.struts.apps.mailreader.dao.User | getUser()Provide reference to User object for authenticated user.
return (User) getSession().get(Constants.USER_KEY);
|
public java.lang.String | getUsername()Provide User username.
return username;
|
public void | removeSubscription()Delete the current Subscription object from the database.
getUser().removeSubscription(getSubscription());
getSession().remove(Constants.SUBSCRIPTION_KEY);
|
public void | saveUser() Persist the User object, including subscriptions, to the database.
try {
getDatabase().save();
} catch (Exception e) {
String message = Constants.LOG_DATABASE_SAVE_ERROR + getUser()
.getUsername();
log.error(message, e);
throw new Exception(message, e);
}
|
public void | setApplication(java.util.Map value)Store a new application context.
application = value;
|
public void | setDatabase(org.apache.struts.apps.mailreader.dao.UserDatabase database)Store a new reference to UserDatabase
getApplication().put(Constants.DATABASE_KEY, database);
|
public void | setHost(java.lang.String value)Store new Subscription host.
host = value;
|
public void | setPassword(java.lang.String value)Store new User Password
password = value;
|
public void | setPassword2(java.lang.String value)Store a new User password confirmation.
password2 = value;
|
public void | setSession(java.util.Map value)Store a new session context.
session = value;
|
public void | setSubscription(org.apache.struts.apps.mailreader.dao.Subscription subscription)Store new User Subscription.
getSession().put(Constants.SUBSCRIPTION_KEY, subscription);
|
public void | setTask(java.lang.String value)Store new workflow task.
task = value;
|
public void | setToken(java.lang.String value)Store new Token.
token = value;
|
public void | setUser(org.apache.struts.apps.mailreader.dao.User user)Store new reference to User Object.
getSession().put(Constants.USER_KEY, user);
|
public void | setUsername(java.lang.String value)Store new User username
username = value;
|