protected UserCredential credential;
public PrincipalCredentialsPanel(String ID)
{
super(ID);
Form form = new Form("userCredentialForm")
{
protected void onSubmit()
{
try
{
boolean passwordSet = false;
UserManager manager = (UserManager) getManager();
PasswordCredential credential = manager
.getPasswordCredential((User) getPrincipal());
if (getCredentialValue() != null
&& getCredentialValue().trim().length() > 0)
{
credential.setPassword(null, getCredentialValue());
getServiceLocator()
.getAuditActivity()
.logAdminCredentialActivity(
getPortletRequest()
.getUserPrincipal()
.getName(),
getIPAddress(),
getPrincipal().getName(),
AuditActivity.PASSWORD_RESET,
AdminPortletWebPage.USER_ADMINISTRATION);
passwordSet = true;
}
if (getCredentialUpdateRequired() != credential
.isUpdateRequired())
{
credential
.setUpdateRequired(getCredentialUpdateRequired());
getServiceLocator()
.getAuditActivity()
.logAdminCredentialActivity(
getPortletRequest()
.getUserPrincipal()
.getName(),
getIPAddress(),
getPrincipal().getName(),
AuditActivity.PASSWORD_UPDATE_REQUIRED,
AdminPortletWebPage.USER_ADMINISTRATION);
}
if (getCredentialEnabled() != credential.isEnabled())
{
credential.setEnabled(getCredentialEnabled());
String activity = (getCredentialEnabled() ? AuditActivity.PASSWORD_ENABLED
: AuditActivity.PASSWORD_DISABLED);
getServiceLocator()
.getAuditActivity()
.logAdminCredentialActivity(
getPortletRequest()
.getUserPrincipal()
.getName(),
getIPAddress(),
getPrincipal().getName(),
activity,
AdminPortletWebPage.USER_ADMINISTRATION);
}
String expiredFlagStr = getUserExpiredFlag();
if (expiredFlagStr != null)
{
if (!passwordSet
&& expiredFlagStr.equals("expired"))
{
java.sql.Date today = new java.sql.Date(
new Date().getTime());
credential.setExpirationDate(today);
getServiceLocator()
.getAuditActivity()
.logAdminCredentialActivity(
getPortletRequest()
.getUserPrincipal()
.getName(),
getIPAddress(),
getPrincipal().getName(),
AuditActivity.PASSWORD_EXPIRE,
AdminPortletWebPage.USER_ADMINISTRATION);
} else if (expiredFlagStr.equals("extend"))
{
// getUserManager().setPasswordExpiration(getUserName(),
// null);
// TODO confirm with Ate/David
credential.setExpirationDate(MAX_DATE);
getServiceLocator()
.getAuditActivity()
.logAdminCredentialActivity(
getPortletRequest()
.getUserPrincipal()
.getName(),
getIPAddress(),
getPrincipal().getName(),
AuditActivity.PASSWORD_EXTEND,
AdminPortletWebPage.USER_ADMINISTRATION);
} else if (expiredFlagStr.equals("unlimited"))
{
credential.setExpirationDate(MAX_DATE);
getServiceLocator()
.getAuditActivity()
.logAdminCredentialActivity(
getPortletRequest()
.getUserPrincipal()
.getName(),
getIPAddress(),
getPrincipal().getName(),
AuditActivity.PASSWORD_UNLIMITED,
AdminPortletWebPage.USER_ADMINISTRATION);
}
}
manager.storePasswordCredential(credential);
} catch (InvalidPasswordException ipe)
{
error(ipe.getMessage());
} catch (InvalidNewPasswordException inpe)
{
error(inpe.getMessage());
} catch (PasswordAlreadyUsedException paue)
{
error(paue.getMessage());
} catch (SecurityException e)
{
error(e.getMessage());
}
refreshData();
setPrincipal(getPrincipal());
}
};
PasswordTextField credentialValueField = new PasswordTextField(
"credentialValue", new PropertyModel(this,
"credentialValue"));
form.add(new Label("passwordLabel", new ResourceModel(
"user.login.password")));
credentialValueField.setRequired(false);
form.add(credentialValueField);
CheckBox credentialUpdateRequiredField = new CheckBox(
"credentialUpdateRequired", new PropertyModel(this,
"credentialUpdateRequired"));
form.add(new Label("changerequiredLabel", new ResourceModel(
"user.change.required")));
form.add(credentialUpdateRequiredField);
Label lastAuthenticationDateLabel = new Label(
"lastAuthenticationDate", new PropertyModel(this,
"lastAuthenticationDate"));
form.add(new Label("lastLogonLabel", new ResourceModel(
"user.login.last.logon")));
form.add(lastAuthenticationDateLabel);
CheckBox credentialEnabledField = new CheckBox("credentialEnabled",
new PropertyModel(this, "credentialEnabled"));
form.add(new Label("enabledLabel", new ResourceModel(
"common.enabled")));
form.add(credentialEnabledField);
Label credentialExpirationDateLabel = new Label(
"credentialExpirationDate", new PropertyModel(this,
"credentialExpirationDate"));
form.add(new Label("expiresLabel", new ResourceModel(
"user.login.expires")));
form.add(credentialExpirationDateLabel);
List expiredFlagChoices = new ArrayList();
RadioChoice userExpiredFlagField = new RadioChoice(
"userExpiredFlag", new PropertyModel(this,
"userExpiredFlag"), expiredFlagChoices);
// TODO change to use localize values
expiredFlagChoices.add("Active");// new
// ResourceModel("user.login.expires.active").);
expiredFlagChoices.add("Expired");// new
// ResourceModel("user.login.expires.expired"));
expiredFlagChoices.add("Extend");// new
// ResourceModel("user.login.expires.extend"));
expiredFlagChoices.add("Unlimited");// new
// ResourceModel("user.login.expires.unlimited"));
form.add(new Button("submitForm",
new ResourceModel("common.update")));
form.add(userExpiredFlagField);
add(form);
}