package com.example.demo.controller.sysuser; /** * @author longzhonghua * @data 2018/11/04 22:30 */ import com.example.demo.entity.sysuser.SysRole; import com.example.demo.entity.sysuser.SysUser; import com.example.demo.repository.SysUser.SysRoleRepository; import com.example.demo.repository.SysUser.SysUserRepository; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Page; import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Sort; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.*; import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletResponse; import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Set; @Controller @RequestMapping("admin") public class SysUserController { @Autowired private SysUserRepository adminUserRepository; @Autowired private SysRoleRepository sysRoleRepository; // @PreAuthorize("hasRole('ROLE_admin')") @RequestMapping("/user/add") public String toAddUser(Model model) { List<SysRole> adminrole = sysRoleRepository.findAll(); model.addAttribute("adminrole", adminrole); return "admin/user/add"; } // @RequestMapping("/user/add") @PostMapping("/user") public String addUser(String name, String password, String role) { BCryptPasswordEncoder encoder = new BCryptPasswordEncoder(); String encodePassword = encoder.encode(password); // String encodePassword = MD5Util.encode(password); SysUser user = new SysUser(name, encodePassword); List<SysRole> roles = new ArrayList<>(); SysRole role1 = sysRoleRepository.findByRole(role); roles.add(role1); user.setRoles(roles); adminUserRepository.save(user); return "redirect:/admin/"; } @RequestMapping("/whoim") @ResponseBody public Object whoIm() { Set<String> urls = new HashSet<>(); System.out.println(urls.toString()); return SecurityContextHolder.getContext().getAuthentication().getPrincipal(); } @RequestMapping("/") public String index(HttpServletResponse response) { response.addHeader("x-frame-options", "SAMEORIGIN"); return "admin/index"; } //删除 @RequestMapping(value = "/user/{id}", method = RequestMethod.DELETE) public String del(@PathVariable("id") long id) { adminUserRepository.deleteById(id); return "redirect:"; } @RequestMapping("/user/edit") public ModelAndView useredit(long id) { SysUser model = adminUserRepository.findById(id); ModelAndView mav = new ModelAndView("admin/user/edit"); mav.addObject("adminuser", model); return mav; } /** * 编辑操作 * * @param model * @return */ @RequestMapping("/user/update") public String userupdate(SysUser model) { adminUserRepository.save(model); return "redirect:"; } @RequestMapping("/user/{id}") public ModelAndView testPathVariable(@PathVariable("id") Integer id) { SysUser adminUser = adminUserRepository.findById(id); ModelAndView mav = new ModelAndView("sys/user/show"); mav.addObject("adminUser", adminUser); return mav; } @RequestMapping(value = "/system/user/{id}", method = RequestMethod.PUT) public String categoryupdates(SysUser model) { String preUrl = "/"; adminUserRepository.save(model); return "redirect:"; } @GetMapping("/user") public ModelAndView userlist(@RequestParam(value = "start", defaultValue = "0") Integer start, @RequestParam(value = "limit", defaultValue = "5") Integer limit) { start = start < 0 ? 0 : start; Sort sort = new Sort(Sort.Direction.DESC, "id"); Pageable pageable = new PageRequest(start, limit, sort); Page<SysUser> page = adminUserRepository.findAll(pageable); ModelAndView mav = new ModelAndView("admin/user/list"); mav.addObject("page", page); return mav; } }