PageRenderTime 40ms CodeModel.GetById 15ms RepoModel.GetById 0ms app.codeStats 0ms

/ems/org.beangle.ems.system/src/main/java/org/beangle/ems/security/action/MyAction.java

http://github.com/beangle/library
Java | 165 lines | 100 code | 20 blank | 45 comment | 6 complexity | 685a1ad4d05c5e87a7d60e9bf933297d MD5 | raw file
Possible License(s): LGPL-3.0
  1. /* Copyright c 2005-2012.
  2. * Licensed under GNU LESSER General Public License, Version 3.
  3. * http://www.gnu.org/licenses
  4. */
  5. package org.beangle.ems.security.action;
  6. import java.util.List;
  7. import java.util.Map;
  8. import org.apache.commons.lang.RandomStringUtils;
  9. import org.apache.commons.lang.StringUtils;
  10. import org.beangle.collection.CollectUtils;
  11. import org.beangle.collection.Order;
  12. import org.beangle.collection.page.PageLimit;
  13. import org.beangle.dao.query.builder.OqlBuilder;
  14. import org.beangle.ems.security.SecurityUtils;
  15. import org.beangle.ems.security.User;
  16. import org.beangle.ems.security.helper.UserDashboardHelper;
  17. import org.beangle.ems.web.action.SecurityActionSupport;
  18. import org.beangle.security.codec.EncryptUtil;
  19. import org.beangle.security.core.session.SessionRegistry;
  20. import org.beangle.security.web.session.model.SessioninfoLogBean;
  21. /**
  22. * ????????
  23. *
  24. * @author chaostone
  25. */
  26. public class MyAction extends SecurityActionSupport {
  27. // private MailSender mailSender;
  28. //
  29. // private SimpleMailMessage message;
  30. private SessionRegistry sessionRegistry;
  31. private UserDashboardHelper userDashboardHelper;
  32. public String index() {
  33. userDashboardHelper.buildDashboard(entityDao.get(User.class, getUserId()));
  34. return forward();
  35. }
  36. public String infolet() {
  37. put("user", entityDao.get(User.class, getUserId()));
  38. return forward();
  39. }
  40. public String dashboard() {
  41. userDashboardHelper.buildDashboard(entityDao.get(User.class, getUserId()));
  42. return forward();
  43. }
  44. public String activity() {
  45. OqlBuilder<SessioninfoLogBean> builder = OqlBuilder.from(SessioninfoLogBean.class,
  46. "sessioninfoLog");
  47. builder.where("sessioninfoLog.username=:name", getUsername());
  48. builder.orderBy(Order.parse("sessioninfoLog.loginAt desc"));
  49. PageLimit limit = getPageLimit();
  50. limit.setPageSize(10);
  51. builder.limit(limit);
  52. put("sessioninfoLogs", entityDao.search(builder));
  53. put("sessioninfos", sessionRegistry.getSessioninfos(SecurityUtils.getUsername(), true));
  54. return forward();
  55. }
  56. public String resetPassword() {
  57. return forward();
  58. }
  59. /**
  60. * ?????????
  61. *
  62. * @return
  63. */
  64. public String edit() {
  65. put("user",entityDao.get(User.class, getUserId()));
  66. return forward();
  67. }
  68. /**
  69. * ????????????
  70. *
  71. * @return
  72. */
  73. public String save() {
  74. Long userId = getUserId();
  75. String email = get("mail");
  76. String pwd = get("password");
  77. Map<String, Object> valueMap = CollectUtils.newHashMap();
  78. valueMap.put("password", pwd);
  79. valueMap.put("mail", email);
  80. entityDao.update(User.class, "id", new Object[] { userId }, valueMap);
  81. return redirect("infolet", "ok.passwordChanged");
  82. }
  83. /**
  84. * ????
  85. */
  86. public String sendPassword() {
  87. String name = get("name");
  88. String email = get("mail");
  89. if (StringUtils.isEmpty(name) || StringUtils.isEmpty(email)) {
  90. addActionError("error.parameters.needed");
  91. return (ERROR);
  92. }
  93. List<User> userList = entityDao.get(User.class, "name", name);
  94. User user = null;
  95. if (userList.isEmpty()) {
  96. return goErrorWithMessage("error.user.notExist");
  97. } else {
  98. user = userList.get(0);
  99. }
  100. if (!StringUtils.equals(email, user.getMail())) {
  101. return goErrorWithMessage("error.email.notEqualToOrign");
  102. } else {
  103. String longinName = user.getName();
  104. String password = RandomStringUtils.randomNumeric(6);
  105. user.setRemark(password);
  106. user.setPassword(EncryptUtil.encode(password));
  107. String title = getText("user.password.sendmail.title");
  108. List<Object> values = CollectUtils.newArrayList();
  109. values.add(longinName);
  110. values.add(password);
  111. // String body = getText("user.password.sendmail.body", values);
  112. // try {
  113. // SimpleMailMessage msg = new SimpleMailMessage(message);
  114. // msg.setTo(user.getMail());
  115. // msg.setSubject(title);
  116. // msg.setText(body.toString());
  117. // mailSender.send(msg);
  118. // } catch (Exception e) {
  119. // e.printStackTrace();
  120. // logger.info("reset password error for user:" + user.getName() + " with email :"
  121. // + user.getMail());
  122. // return goErrorWithMessage("error.email.sendError");
  123. // }
  124. }
  125. entityDao.saveOrUpdate(user);
  126. return forward("sendResult");
  127. }
  128. private String goErrorWithMessage(String key) {
  129. addError(key);
  130. return forward("resetPassword");
  131. }
  132. public void setSessionRegistry(SessionRegistry sessionRegistry) {
  133. this.sessionRegistry = sessionRegistry;
  134. }
  135. // public void setMailSender(MailSender mailSender) {
  136. // this.mailSender = mailSender;
  137. // }
  138. //
  139. // public void setMessage(SimpleMailMessage message) {
  140. // this.message = message;
  141. // }
  142. public void setUserDashboardHelper(UserDashboardHelper userDashboardHelper) {
  143. this.userDashboardHelper = userDashboardHelper;
  144. }
  145. }