首页>代码>java设计好的后台权限管理的系统>/security/src/main/java/com/ketayao/security/controller/IndexController.java
/** * <pre> * Copyright: Copyright(C) 2011-2012, ketayao.com * Filename: com.ygsoft.security.controller.IndexController.java * Class: IndexController * Date: 2012-8-2 * Author: <a href="mailto:ketayao@gmail.com">ketayao</a> * Version 1.1.0 * Description: * * </pre> **/ package com.ketayao.security.controller; import java.util.List; import java.util.Set; import javax.servlet.http.HttpServletRequest; import org.apache.shiro.SecurityUtils; import org.apache.shiro.authz.annotation.RequiresAuthentication; import org.apache.shiro.subject.Subject; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody; import com.google.common.collect.Lists; import com.google.common.collect.Sets; import com.ketayao.security.SecurityConstants; import com.ketayao.security.entity.main.Module; import com.ketayao.security.entity.main.User; import com.ketayao.security.entity.main.UserRole; import com.ketayao.security.service.ModuleService; import com.ketayao.security.service.UserRoleService; import com.ketayao.security.service.UserService; import com.ketayao.security.shiro.ShiroDbRealm; import com.ketayao.util.dwz.AjaxObject; /** * * @author <a href="mailto:ketayao@gmail.com">ketayao</a> * Version 1.1.0 * @since 2012-8-2 下午5:45:57 */ @Controller @RequestMapping("/management/index") public class IndexController { @Autowired private UserService userService; @Autowired private UserRoleService userRoleService; @Autowired private ModuleService moduleService; private static final String INDEX = "management/index/index"; private static final String UPDATE_PASSWORD = "management/index/updatePwd"; private static final String UPDATE_BASE = "management/index/updateBase"; @RequiresAuthentication @RequestMapping(value="", method=RequestMethod.GET) public String index(HttpServletRequest request) { Subject subject = SecurityUtils.getSubject(); ShiroDbRealm.ShiroUser shiroUser = (ShiroDbRealm.ShiroUser)subject.getPrincipal(); //User user = userService.get(shiroUser.getLoginName()); List<UserRole> userRoles = userRoleService.find(shiroUser.getId()); shiroUser.getUser().setUserRoles(userRoles); Module menuModule = getMenuModule(userRoles); // 这个是放入user还是shiroUser呢? request.getSession().setAttribute(SecurityConstants.LOGIN_USER, shiroUser.getUser()); request.setAttribute("menuModule", menuModule); return INDEX; } private Module getMenuModule(List<UserRole> userRoles) { // 得到所有权限 Set<String> permissionSet = Sets.newHashSet(); for (UserRole userRole : userRoles) { Set<String> tmp = Sets.newHashSet(userRole.getRole().getPermissionList()); permissionSet.addAll(tmp); } // 组装菜单,只获取二级菜单 //Module rootModule = moduleService.get(1L); Module rootModule = moduleService.getTree(); List<Module> list1 = Lists.newArrayList(); for (Module m1 : rootModule.getChildren()) { // 只加入拥有view权限的Module if (permissionSet.contains(m1.getSn() + ":" + SecurityConstants.OPERATION_VIEW)) { List<Module> list2 = Lists.newArrayList(); for (Module m2 : m1.getChildren()) { if (permissionSet.contains(m2.getSn() + ":" + SecurityConstants.OPERATION_VIEW)) { list2.add(m2); } } m1.setChildren(list2); list1.add(m1); } } rootModule.setChildren(list1); return rootModule; } @RequestMapping(value="/updatePwd", method=RequestMethod.GET) public String updatePassword() { return UPDATE_PASSWORD; } @RequestMapping(value="/updatePwd", method=RequestMethod.POST) public @ResponseBody String updatePassword(HttpServletRequest request, String oldPassword, String plainPassword, String rPassword) { User user = (User)request.getSession().getAttribute(SecurityConstants.LOGIN_USER); if (plainPassword.equals(rPassword)) { user.setPlainPassword(plainPassword); userService.update(user); AjaxObject ajaxObject = new AjaxObject("密码修改成功!"); return ajaxObject.toString(); } AjaxObject ajaxObject = new AjaxObject("密码修改失败!"); ajaxObject.setStatusCode(AjaxObject.STATUS_CODE_FAILURE); ajaxObject.setCallbackType(""); return ajaxObject.toString(); } @RequestMapping(value="/updateBase", method=RequestMethod.GET) public String preUpdate() { return UPDATE_BASE; } @RequestMapping(value="/updateBase", method=RequestMethod.POST) public @ResponseBody String update(User user, HttpServletRequest request) { User loginUser = (User)request.getSession().getAttribute(SecurityConstants.LOGIN_USER); loginUser.setPhone(user.getPhone()); loginUser.setEmail(user.getEmail()); userService.update(loginUser); AjaxObject ajaxObject = new AjaxObject("详细信息修改成功!"); return ajaxObject.toString(); } }
最近下载更多
qingquan LV1
5月22日
3127857649 LV1
2023年3月3日
WZW555 LV1
2022年5月18日
lsq54365 LV14
2021年11月13日
shaven LV2
2021年7月1日
yuting Wang LV9
2021年5月13日
你是傻子 LV9
2021年1月19日
zhang5 LV2
2020年12月26日
落轩昂 LV12
2020年9月24日
我是最靓的仔 LV1
2020年9月2日
最近浏览更多
337721 LV2
9月20日
qingquan LV1
5月22日
微信网友_6906962132258816 LV7
4月22日
微信网友_6829521472425984 LV5
1月20日
ww0408 LV1
2023年12月28日
Ji123455 LV8
2023年9月21日
黑 LV7
2023年8月28日
飞呀飞呀飞不放 LV7
2023年8月9日
胡修洋
2023年6月5日
暂无贡献等级
3127857649 LV1
2023年3月3日