package com.mossle.guest.web;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import com.mossle.core.spring.MessageHelper;
import com.mossle.user.service.ChangePasswordService;
import com.mossle.user.support.ChangePasswordResult;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
@Controller
@RequestMapping("guest")
public class GuestController {
private static Logger logger = LoggerFactory
.getLogger(GuestController.class);
private MessageHelper messageHelper;
private ChangePasswordService changePasswordService;
@RequestMapping("change-password-input")
public String changePasswordInput(HttpServletRequest request, Model model) {
String username = (String) request.getSession().getAttribute(
"SECURITY_LAST_USERNAME");
if (username == null) {
logger.info("username is null");
return "redirect:/common/login.jsp";
}
return "guest/change-password-input";
}
@RequestMapping("change-password-save")
public String changePasswordSave(
@RequestParam("oldPassword") String oldPassword,
@RequestParam("newPassword") String newPassword,
@RequestParam("confirmPassword") String confirmPassword,
HttpServletRequest request, RedirectAttributes redirectAttributes)
throws Exception {
String username = (String) request.getSession().getAttribute(
"SECURITY_LAST_USERNAME");
if (username == null) {
logger.info("username is null");
return "redirect:/common/login.jsp";
}
ChangePasswordResult changePasswordResult = changePasswordService
.changePassword(username, oldPassword, newPassword,
confirmPassword);
if (changePasswordResult.isSuccess()) {
messageHelper.addFlashMessage(redirectAttributes,
changePasswordResult.getCode(),
changePasswordResult.getMessage());
return "redirect:/guest/change-password-success.do";
} else {
messageHelper.addFlashMessage(redirectAttributes,
changePasswordResult.getCode(),
changePasswordResult.getMessage());
return "redirect:/guest/change-password-input.do";
}
}
@RequestMapping("change-password-success")
public String changePasswordSuccess() {
return "guest/change-password-success";
}
// ~ ======================================================================
@Resource
public void setMessageHelper(MessageHelper messageHelper) {
this.messageHelper = messageHelper;
}
@Resource
public void setChangePasswordService(
ChangePasswordService changePasswordService) {
this.changePasswordService = changePasswordService;
}
}