1 package org.tigris.scarab.actions; 2 3 48 49 import org.apache.turbine.TemplateContext; 51 import org.apache.turbine.RunData; 52 53 import org.apache.fulcrum.security.TurbineSecurity; 54 import org.apache.turbine.tool.IntakeTool; 55 import org.apache.fulcrum.intake.model.Group; 56 import org.apache.fulcrum.security.util.PasswordMismatchException; 57 58 import org.tigris.scarab.om.ScarabUser; 60 import org.tigris.scarab.util.ScarabConstants; 61 import org.tigris.scarab.actions.base.ScarabTemplateAction; 62 import org.tigris.scarab.tools.ScarabRequestTool; 63 import org.tigris.scarab.tools.ScarabLocalizationTool; 64 import org.tigris.scarab.tools.localization.L10NKeySet; 65 66 73 public class ChangePassword extends ScarabTemplateAction 74 { 75 78 public void doChangepassword(RunData data, TemplateContext context) 79 throws Exception 80 { 81 ScarabRequestTool scarabR = getScarabRequestTool(context); 82 ScarabLocalizationTool l10n = getLocalizationTool(context); 83 String template = getCurrentTemplate(data, null); 84 IntakeTool intake = getIntakeTool(context); 85 if (intake.isAllValid()) 86 { 87 Object user = data 88 .getUser() 89 .getTemp(ScarabConstants.SESSION_REGISTER); 90 Group register = null; 91 if (user != null && user instanceof ScarabUser) 92 { 93 register = intake.get("Register", 94 ((ScarabUser)user).getQueryKey(), false); 95 } 96 else 97 { 98 register = intake.get("Register", 99 IntakeTool.DEFAULT_KEY, false); 100 } 101 102 String username = data.getParameters().getString("username"); 103 String oldPassword = register.get("OldPassword").toString(); 104 String password = register.get("Password").toString(); 105 String passwordConfirm = register.get("PasswordConfirm").toString(); 106 107 if (oldPassword.equals(password)) 108 { 109 scarabR.setInfoMessage(L10NKeySet.PasswordSame); 110 setTarget(data, template); 111 } 112 else if (password.equals(passwordConfirm)) 113 { 114 try 115 { 116 ScarabUser confirmedUser = (ScarabUser) 117 TurbineSecurity.getUser(username); 118 119 confirmedUser.setPasswordExpire(); 121 confirmedUser.setHasLoggedIn(Boolean.FALSE); 122 data.setUser(confirmedUser); 123 data.save(); 124 125 TurbineSecurity.changePassword(confirmedUser, 127 oldPassword, password); 128 129 scarabR.setConfirmMessage(L10NKeySet.PasswordChanged); 130 131 data.getParameters().remove(ScarabConstants.NEXT_TEMPLATE); 133 setTarget(data, "Login.vm"); 134 } 135 catch (PasswordMismatchException pme) 136 { 137 scarabR.setAlertMessage(l10n.getMessage(pme)); 138 setTarget(data, template); 139 } 140 } 141 else 142 { 143 scarabR.setAlertMessage(L10NKeySet.PasswordsDoNotMatch); 144 setTarget(data, template); 145 } 146 } 147 else 148 { 149 scarabR.setAlertMessage("Failed to process form input."); 150 setTarget(data, template); 151 } 152 } 153 } 154 | Popular Tags |