Bläddra i källkod

更新 RolePageController 接口, 删除新增和编辑 role 接口, role 由 cn.reghao.devops.mgr.admin.model.constant.RoleType 枚举提供

reghao 6 månader sedan
förälder
incheckning
f4bd859c35

+ 18 - 59
mgr/src/main/java/cn/reghao/devops/mgr/admin/controller/RolePageController.java

@@ -1,6 +1,5 @@
 package cn.reghao.devops.mgr.admin.controller;
 
-import cn.reghao.devops.mgr.admin.model.dto.RoleDto;
 import cn.reghao.devops.mgr.admin.model.po.Menu;
 import cn.reghao.devops.mgr.admin.model.po.Role;
 import cn.reghao.devops.mgr.admin.model.po.User;
@@ -18,7 +17,6 @@ import org.springframework.http.MediaType;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.Model;
-import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
 import java.util.Collections;
@@ -44,68 +42,42 @@ public class RolePageController {
     @ApiOperation(value = "角色列表页面", notes = "N")
     @PreAuthorize("hasRole('ROLE_ADMIN')")
     @GetMapping
-    public String rolePage(@RequestParam(value = "name", required = false) String name, Model model) {
-        Page<RoleVO> page;
-        if (name != null) {
-            page = roleService.getByPage(null, name);
-        } else {
-            PageRequest pageRequest = PageRequest.of(0, 100);
-            page = roleService.getByPage(pageRequest, null);
-        }
+    public String rolePage(Model model) {
+        PageRequest pageRequest = PageRequest.of(0, 100);
+        Page<RoleVO> page = roleService.getByPage(pageRequest, null);
 
         model.addAttribute("page", page);
         model.addAttribute("list", page.getContent());
         return "/admin/role/index";
     }
 
-    @ApiOperation(value = "角色新增页面", notes = "N")
-    @PreAuthorize("hasRole('ROLE_ADMIN')")
-    @GetMapping("/add")
-    public String addRolePage() {
-        return "/admin/role/add";
-    }
-
-    @ApiOperation(value = "角色编辑页面", notes = "N")
-    @PreAuthorize("hasRole('ROLE_ADMIN')")
-    @GetMapping("/edit/{id}")
-    public String editRolePage(@PathVariable("id") int id, Model model) {
-        RoleVO vo = roleService.getRoleVOById(id);
-        model.addAttribute("role", vo);
-        return "/admin/role/add";
-    }
-
-    @ApiOperation(value = "角色详细信息页面", notes = "N")
+    @ApiOperation(value = "拥有角色的所有用户页面", notes = "N")
     @PreAuthorize("hasRole('ROLE_ADMIN')")
-    @GetMapping("/detail/{id}")
-    public String roleDetailPage(@PathVariable("id") int id, Model model) {
-        RoleVO vo = roleService.getRoleVOById(id);
-        model.addAttribute("role", vo);
-        return "/admin/role/detail";
+    @GetMapping("/users/{id}")
+    public String userListWithRole(@PathVariable("id") Integer roleId, Model model) {
+        List<User> list = roleService.getRoleUsers(roleId);
+        model.addAttribute("list", list);
+        return "/admin/role/users";
     }
 
     @ApiOperation(value = "设置角色可访问的资源页面", notes = "N")
     @PreAuthorize("hasRole('ROLE_ADMIN')")
-    @GetMapping("/menus/{id}")
+    @GetMapping("/grant/{id}")
     public String menusPage(@PathVariable(value = "id") Integer id, Model model){
         model.addAttribute("roleId", id);
         return "/admin/role/menus";
     }
 
-    @ApiOperation(value = "拥有角色的所有用户页面", notes = "N")
-    @PreAuthorize("hasRole('ROLE_ADMIN')")
-    @GetMapping("/users/{id}")
-    public String userListWithRole(@PathVariable("id") Integer roleId, Model model) {
-        List<User> list = roleService.getRoleUsers(roleId);
-        model.addAttribute("list", list);
-        return "/admin/role/users";
-    }
-
-    @ApiOperation(value = "添加或修改角色", notes = "N")
+    @ApiOperation(value = "设置角色可访问的资源", notes = "N")
     @PreAuthorize("hasRole('ROLE_ADMIN')")
-    @PostMapping(produces = MediaType.APPLICATION_JSON_VALUE)
+    @PostMapping(value = "/menus", produces = MediaType.APPLICATION_JSON_VALUE)
     @ResponseBody
-    public String addOrModifyRole(@Validated RoleDto roleDto) {
-        roleService.addOrUpdate(roleDto);
+    public String setRoleMenus(@RequestParam(value = "id") Integer roleId,
+                               @RequestParam(value = "menuId", required = false) Set<Menu> menus) {
+        if (menus == null) {
+            menus = Collections.emptySet();
+        }
+        roleService.updateRoleMenus(roleId, menus);
         return WebResult.success();
     }
 
@@ -133,17 +105,4 @@ public class RolePageController {
         List<MenuTree> allMenus = menuService.getMenusByRole(role);
         return WebResult.success(allMenus);
     }
-
-    @ApiOperation(value = "设置角色可访问的资源", notes = "N")
-    @PreAuthorize("hasRole('ROLE_ADMIN')")
-    @PostMapping(value = "/menus", produces = MediaType.APPLICATION_JSON_VALUE)
-    @ResponseBody
-    public String setRoleMenus(@RequestParam(value = "id") Integer roleId,
-                               @RequestParam(value = "menuId", required = false) Set<Menu> menus) {
-        if (menus == null) {
-            menus = Collections.emptySet();
-        }
-        roleService.setRoleMenus(roleId, menus);
-        return WebResult.success();
-    }
 }

+ 0 - 20
mgr/src/main/java/cn/reghao/devops/mgr/admin/model/dto/RoleDto.java

@@ -1,20 +0,0 @@
-package cn.reghao.devops.mgr.admin.model.dto;
-
-import lombok.Data;
-import lombok.NoArgsConstructor;
-import org.hibernate.validator.constraints.Length;
-
-import javax.validation.constraints.Pattern;
-
-/**
- * @author reghao
- * @date 2021-07-14 14:14:07
- */
-@NoArgsConstructor
-@Data
-public class RoleDto {
-    @Pattern(regexp = "^\\w+$", message = "角色名只能是英文字符")
-    private String name;
-    @Length(max = 100, message = "角色描述的长度不超过 100 个中文字符")
-    private String description;
-}

+ 1 - 3
mgr/src/main/java/cn/reghao/devops/mgr/admin/service/RoleService.java

@@ -1,6 +1,5 @@
 package cn.reghao.devops.mgr.admin.service;
 
-import cn.reghao.devops.mgr.admin.model.dto.RoleDto;
 import cn.reghao.devops.mgr.admin.model.po.Menu;
 import cn.reghao.devops.mgr.admin.model.po.Role;
 import cn.reghao.devops.mgr.admin.model.po.User;
@@ -17,9 +16,8 @@ import java.util.Set;
  * @date 2020-06-19 16:36:53
  */
 public interface RoleService {
-    void addOrUpdate(RoleDto roleDto);
+    void updateRoleMenus(Integer roleId, Set<Menu> menus);
     Result deleteRole(Integer roleId);
-    void setRoleMenus(Integer roleId, Set<Menu> menus);
     Role getByName(String name);
     Page<RoleVO> getByPage(PageRequest pageRequest, String name);
     RoleVO getRoleVOById(Integer roleId);

+ 3 - 17
mgr/src/main/java/cn/reghao/devops/mgr/admin/service/impl/RoleServiceImpl.java

@@ -2,7 +2,6 @@ package cn.reghao.devops.mgr.admin.service.impl;
 
 import cn.reghao.devops.mgr.admin.db.repository.RoleRepository;
 import cn.reghao.devops.mgr.admin.db.repository.UserRepository;
-import cn.reghao.devops.mgr.admin.model.dto.RoleDto;
 import cn.reghao.devops.mgr.admin.model.po.Menu;
 import cn.reghao.devops.mgr.admin.model.po.Role;
 import cn.reghao.devops.mgr.admin.model.po.User;
@@ -38,15 +37,9 @@ public class RoleServiceImpl implements RoleService {
     }
 
     @Override
-    public void addOrUpdate(RoleDto roleDto) {
-        String name = String.format("ROLE_%s", roleDto.getName().toUpperCase(Locale.ROOT));
-        Role role = roleRepository.findByName(name);
-        if (role != null) {
-            role.setDescription(roleDto.getDescription());
-        } else {
-            role = new Role(name, roleDto.getDescription());
-        }
-
+    public void updateRoleMenus(Integer roleId, Set<Menu> menus) {
+        Role role = roleRepository.getOne(roleId);
+        role.setMenus(menus);
         roleRepository.save(role);
     }
 
@@ -67,13 +60,6 @@ public class RoleServiceImpl implements RoleService {
         return Result.success();
     }
 
-    @Override
-    public void setRoleMenus(Integer roleId, Set<Menu> menus) {
-        Role role = roleRepository.getOne(roleId);
-        role.setMenus(menus);
-        roleRepository.save(role);
-    }
-
     @Override
     public Role getByName(String name) {
         return roleRepository.findByName(name);

+ 1 - 27
mgr/src/main/resources/templates/admin/role/index.html

@@ -9,28 +9,6 @@
         <i class="layui-icon layui-icon-refresh refresh-btn"></i>
     </div>
     <div class="layui-card-body">
-        <div class="layui-row timo-card-screen">
-            <div class="pull-left layui-form-pane timo-search-box">
-                <div class="layui-inline">
-                    <label class="layui-form-label">角色名</label>
-                    <div class="layui-input-block">
-                        <input type="text" name="name" th:value="${param.name}" placeholder="请输入角色名"
-                               autocomplete="off" class="layui-input">
-                    </div>
-                </div>
-                <div class="layui-inline">
-                    <button class="layui-btn timo-search-btn">
-                        <i class="fa fa-search"></i>
-                    </button>
-                </div>
-            </div>
-            <div class="pull-right screen-btn-group">
-                <button class="layui-btn open-popup" data-title="添加角色" th:attr="data-url=@{/rbac/role/add}"
-                        data-size="460,357">
-                    <i class="fa fa-plus"></i> 添加
-                </button>
-            </div>
-        </div>
         <div class="timo-table-wrap">
             <table class="layui-table timo-table">
                 <thead>
@@ -55,13 +33,9 @@
                     </td>
                     <td>
                         <a class="open-popup" th:attr="data-title=@{'授予 ' + ${item.name} + ' 角色资源'},
-                        data-url=@{'/rbac/role/menus/'+${item.id}}" data-size="720,540" href="#">设置</a>
+                        data-url=@{'/rbac/role/grant/'+${item.id}}" data-size="720,540" href="#">设置</a>
                     </td>
                     <td>
-                        <a class="open-popup" data-title="修改角色描述" th:attr="data-url=@{'/rbac/role/edit/'+${item.id}}"
-                           data-size="480,320" href="#">编辑</a>
-                        <a class="open-popup" data-title="详细信息" th:attr="data-url=@{'/rbac/role/detail/'+${item.id}}"
-                           data-size="640,480" href="#">详细</a>
                         <a class="ajax-delete" th:attr="data-msg='确定要删除 '+ ${item.name} + '?'"
                            th:href="@{'/rbac/role/' + ${item.id}}">删除</a>
                     </td>