1 package org.gnomekr.potron.web.view; 2 3 import static org.gnomekr.potron.util.NavigationCases.NAV_HOME; 4 import static org.gnomekr.potron.util.NavigationCases.NAV_PROFILE_UPDATE; 5 import static org.gnomekr.potron.util.NavigationCases.NAV_USER_REGISTER; 6 7 import javax.faces.application.FacesMessage; 8 9 import net.sf.acegisecurity.providers.encoding.PasswordEncoder; 10 11 import org.apache.commons.lang.StringUtils; 12 import org.apache.myfaces.util.MessageUtils; 13 import org.gnomekr.potron.data.User; 14 import org.gnomekr.potron.service.IUserManager; 15 import org.gnomekr.potron.service.UserExistsException; 16 17 /*** 18 * UserView.java 19 * @author Xavier Cho 20 * @version $Revision 1.1 $ $Date: 2005/07/21 21:36:45 $ 21 * @jsf.bean 22 * name = "user" 23 * scope = "request" 24 * @jsf.navigation 25 * from = "*" 26 * to = "/register.jsf" 27 * result = "user.register" 28 * @jsf.navigation 29 * from = "*" 30 * to = "/profile.jsf" 31 * result = "user.update" 32 */ 33 public class UserView extends AbstractFacesView { 34 35 private IUserManager manager; 36 private PasswordEncoder passwordEncoder; 37 38 private String userName; 39 private String realName; 40 private String password; 41 private String passwordConfirm; 42 private String email; 43 private String homepage; 44 private String comment; 45 46 /*** 47 * @return 48 * @jsf.managed-property 49 * value = "#{userManager}" 50 */ 51 public IUserManager getManager() { 52 return manager; 53 } 54 55 /*** 56 * @return Returns the passwordEncoder. 57 * @jsf.managed-property 58 * value = "#{passwordEncoder}" 59 */ 60 public PasswordEncoder getPasswordEncoder() { 61 return passwordEncoder; 62 } 63 64 public String prepareUserUpdate() { 65 User user = manager.getUser(getCurrentUserName()); 66 67 if (user != null) { 68 this.userName = user.getUserName(); 69 this.realName = user.getRealName(); 70 this.email = user.getEmail(); 71 this.homepage = user.getHomepage(); 72 this.comment = user.getComment(); 73 } 74 75 return NAV_PROFILE_UPDATE; 76 } 77 78 public String createUser() { 79 User user = new User(); 80 user.setUserName(userName); 81 user.setRealName(realName); 82 user.setPassword(passwordEncoder.encodePassword(password, null)); 83 user.setEmail(email); 84 user.setComment(comment); 85 user.setHomepage(homepage); 86 87 try { 88 manager.createUser(user); 89 } catch (UserExistsException e) { 90 MessageUtils.addMessage( 91 FacesMessage.SEVERITY_WARN, 92 "error.user.exists", 93 null); 94 95 return NAV_USER_REGISTER; 96 } 97 98 MessageUtils.addMessage( 99 FacesMessage.SEVERITY_INFO, 100 "msg.user.register.successful", 101 null); 102 103 return NAV_HOME; 104 } 105 106 public String updateUser() { 107 User user = manager.getUser(getCurrentUserName()); 108 user.setRealName(realName); 109 110 if (StringUtils.isNotBlank(password)) { 111 user.setPassword(passwordEncoder.encodePassword(password, null)); 112 } 113 114 user.setEmail(email); 115 user.setComment(comment); 116 user.setHomepage(homepage); 117 118 manager.updateUser(user); 119 120 MessageUtils.addMessage( 121 FacesMessage.SEVERITY_INFO, 122 "msg.user.update.successful", 123 null); 124 125 return NAV_HOME; 126 } 127 128 public String getEmail() { 129 return email; 130 } 131 132 public String getHomepage() { 133 return homepage; 134 } 135 136 public String getComment() { 137 return comment; 138 } 139 140 public String getPassword() { 141 return password; 142 } 143 144 /*** 145 * @param password 146 */ 147 public void setPassword(String password) { 148 this.password = password; 149 } 150 151 public String getPasswordConfirm() { 152 return passwordConfirm; 153 } 154 155 public String getRealName() { 156 return realName; 157 } 158 159 public String getUserName() { 160 return userName; 161 } 162 163 /*** 164 * @param userName 165 */ 166 public void setUserName(String userName) { 167 this.userName = userName; 168 } 169 170 /*** 171 * @param realName The realName to set. 172 */ 173 public void setRealName(String realName) { 174 this.realName = realName; 175 } 176 177 /*** 178 * @param passwordConfirm 179 */ 180 public void setPasswordConfirm(String passwordConfirm) { 181 this.passwordConfirm = passwordConfirm; 182 } 183 184 /*** 185 * @param email 186 */ 187 public void setEmail(String email) { 188 this.email = email; 189 } 190 191 /*** 192 * @param homepage 193 */ 194 public void setHomepage(String homepage) { 195 this.homepage = homepage; 196 } 197 198 /*** 199 * @param comment 200 */ 201 public void setComment(String comment) { 202 this.comment = comment; 203 } 204 205 /*** 206 * @param manager 207 */ 208 public void setManager(IUserManager manager) { 209 this.manager = manager; 210 } 211 212 /*** 213 * @param passwordEncoder The passwordEncoder to set. 214 */ 215 public void setPasswordEncoder(PasswordEncoder passwordEncoder) { 216 this.passwordEncoder = passwordEncoder; 217 } 218 }