package com.cl.privilege.controller;
import java.util.Calendar;
import java.util.Date;
import javax.servlet.http.HttpServletRequest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import com.cl.privilege.api.IPrivilegeBaseApiService;
import com.cl.privilege.biz.IUserService;
import com.cl.privilege.model.User;
import com.cl.privilege.utils.ConfigUtil;
import com.cl.privilege.utils.ConstantUtil;
import com.cl.privilege.utils.SessionUtil;
import com.cl.privilege.utils.StringUtil;
/**
*主界面及登录验证相关的控制器
*/
@Controller
@RequestMapping("/controller")
public class IndexController {
@Autowired
private IPrivilegeBaseApiService privilegeBaseApiService;
@Autowired
private ConfigUtil configUtil;
@Autowired
private IUserService userService;
@RequestMapping("/main")
public String main(String visitedModule,HttpServletRequest request,ModelMap map) {
visitedModule = "p";
//初始化用户、菜单
User user = SessionUtil.getSessionUser(request);
String menus = privilegeBaseApiService.getModuleTree(user.getId(),visitedModule,"");
map.put("user", user);
map.put("menus", menus);
int hours = Calendar.getInstance().get(Calendar.HOUR_OF_DAY);
map.put("hours", hours);
return "main.ftl";
}
@RequestMapping("/logout")
public String logout(HttpServletRequest request) throws Exception
{
SessionUtil.clearSession(request);
//被拦截器拦截处理
return "redirect:" + configUtil.getCasServerUrl()+"/logout?service=" + configUtil.getCasServiceUrl();
}
@RequestMapping("/modifypasswordform")
public String modifypasswordform(HttpServletRequest request) throws Exception
{
return "modifypasswordform.ftl";
}
@ResponseBody
@RequestMapping("/modifypassword")
public String modifypassword(String oldpassword,String password,HttpServletRequest request) throws Exception
{
if(StringUtil.isStrEmpty(oldpassword) || StringUtil.isStrEmpty(password)) return ConstantUtil.Fail;
//初始化用户、菜单
User user = SessionUtil.getSessionUser(request);
if(!user.getPassword().equals(StringUtil.makeMD5(oldpassword))) return ConstantUtil.Fail;
User newUser = new User();
newUser.setId(user.getId());
newUser.setPassword(StringUtil.makeMD5(password));
newUser.setUpdateDate(new Date());
newUser.setUpdatePerson(user.getUsername());
privilegeBaseApiService.updateUserById(newUser);
//更新session
user.setPassword(newUser.getPassword());
request.getSession().setAttribute(SessionUtil.SessionSystemLoginUserName,user);
return ConstantUtil.Success;
}
}