package org.hepx.rbac.web.controller; import org.hepx.rbac.entity.User; import org.hepx.rbac.service.OrganizationService; import org.hepx.rbac.service.UserService; import org.hepx.rbac.web.ResponseResult; import org.hepx.rbac.service.RoleService; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.servlet.mvc.support.RedirectAttributes; import java.util.Map; @Controller @RequestMapping("/user") public class UserController { private static Logger logger = LoggerFactory.getLogger(UserController.class); @Autowired private UserService userService; @Autowired private OrganizationService organizationService; @Autowired private RoleService roleService; @RequiresPermissions("user:view") @RequestMapping(method = RequestMethod.GET) public String list(Model model) { model.addAttribute("userList", userService.findAll()); return "user/list"; } @RequiresPermissions("user:create") @RequestMapping(value = "/create", method = RequestMethod.GET) public String showCreateForm(Model model) { model.addAttribute("op", "新增"); return "user/edit"; } @RequiresPermissions("user:create") @RequestMapping(value = "/create", method = RequestMethod.POST) public String create(User user, RedirectAttributes redirectAttributes) { userService.createUser(user); redirectAttributes.addFlashAttribute("msg", "新增成功"); return "redirect:/user"; } @RequiresPermissions("user:update") @RequestMapping(value = "/{id}/update", method = RequestMethod.GET) public String showUpdateForm(@PathVariable("id") Long id, Model model) { model.addAttribute("user", userService.findOne(id)); model.addAttribute("op", "修改"); return "user/edit"; } @RequiresPermissions("user:update") @RequestMapping(value = "/{id}/update", method = RequestMethod.POST) public String update(User user, RedirectAttributes redirectAttributes) { userService.updateUser(user); redirectAttributes.addFlashAttribute("msg", "修改成功"); return "redirect:/user"; } @RequiresPermissions("user:delete") @RequestMapping(value = "/{id}/delete", method = RequestMethod.GET) public @ResponseBody Map delete(@PathVariable("id") Long id, Model model) { try { userService.deleteUser(id); return ResponseResult.buildSuccessResult().toMap(); } catch (Exception e) { logger.error(e.getMessage(),e); return ResponseResult.buildFailResult().toMap(); } } @RequiresPermissions("user:update") @RequestMapping(value = "/{id}/changePassword", method = RequestMethod.GET) public String showChangePasswordForm(@PathVariable("id") Long id, Model model) { model.addAttribute("user", userService.findOne(id)); model.addAttribute("op", "修改密码"); return "user/changePassword"; } @RequiresPermissions("user:update") @RequestMapping(value = "/{id}/changePassword", method = RequestMethod.POST) public String changePassword(@PathVariable("id") Long id, String newPassword, RedirectAttributes redirectAttributes) { userService.changePassword(id, newPassword); redirectAttributes.addFlashAttribute("msg", "修改密码成功"); return "redirect:/user"; } }