Commit d95d42cc authored by Junling Bu's avatar Junling Bu
Browse files

fix[litemall-admin-api]: 权限值列表修复

parent 7dba6ce5
......@@ -13,15 +13,12 @@ import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.*;
public class PermissionUtil {
public static List<PermVo> listPermissions(ApplicationContext context, String basicPackage) {
public static List<PermVo> listPermVo(List<Permission> permissions) {
List<PermVo> root = new ArrayList<>();
List<Permission> permissions = findPermissions(context, basicPackage);
for (Permission permission : permissions) {
RequiresPermissions requiresPermissions = permission.getRequiresPermissions();
RequiresPermissionsDesc requiresPermissionsDesc = permission.getRequiresPermissionsDesc();
......@@ -88,7 +85,7 @@ public class PermissionUtil {
return root;
}
public static List<Permission> findPermissions(ApplicationContext context, String basicPackage) {
public static List<Permission> listPermission(ApplicationContext context, String basicPackage) {
Map<String, Object> map = context.getBeansWithAnnotation(Controller.class);
List<Permission> permissions = new ArrayList<>();
for (Map.Entry<String, Object> entry : map.entrySet()) {
......@@ -143,4 +140,11 @@ public class PermissionUtil {
return permissions;
}
public static Set<String> listPermissionString(List<Permission> permissions) {
Set<String> permissionsString = new HashSet<>();
for(Permission permission : permissions){
permissionsString.add(permission.getRequiresPermissions().value()[0]);
}
return permissionsString;
}
}
......@@ -50,7 +50,7 @@ public class AdminCouponController {
return ResponseUtil.ok(data);
}
@RequiresPermissions("admin:coupon:list")
@RequiresPermissions("admin:coupon:listuser")
@RequiresPermissionsDesc(menu={"推广管理" , "优惠券管理"}, button="查询用户")
@GetMapping("/listuser")
public Object listuser(Integer userId, Integer couponId, Short status,
......
......@@ -8,6 +8,7 @@ import org.apache.shiro.subject.Subject;
import org.linlinjava.litemall.admin.annotation.RequiresPermissionsDesc;
import org.linlinjava.litemall.admin.util.AdminResponseCode;
import org.linlinjava.litemall.admin.util.PermVo;
import org.linlinjava.litemall.admin.util.Permission;
import org.linlinjava.litemall.admin.util.PermissionUtil;
import org.linlinjava.litemall.core.util.JacksonUtil;
import org.linlinjava.litemall.core.util.ResponseUtil;
......@@ -138,30 +139,25 @@ public class AdminRoleController {
@Autowired
private ApplicationContext context;
private List<PermVo> systemPermissions = null;
private Set<String> systemPermissionsString = null;
private List<PermVo> getSystemPermissions(){
final String basicPackage = "org.linlinjava.litemall.admin";
if(systemPermissions == null){
systemPermissions = PermissionUtil.listPermissions(context, basicPackage);
List<Permission> permissions = PermissionUtil.listPermission(context, basicPackage);
systemPermissions = PermissionUtil.listPermVo(permissions);
systemPermissionsString = PermissionUtil.listPermissionString(permissions);
}
return systemPermissions;
}
private Set<String> getSystemPermissionsString(){
getSystemPermissions();
Set<String> permissions = new HashSet<String>();
for(PermVo permVo : systemPermissions){
permissions.add(permVo.getId());
}
return permissions;
}
private Set<String> getAssignedPermissions(Integer roleId){
// 这里需要注意的是,如果存在超级权限*,那么这里需要转化成当前所有系统权限。
// 之所以这么做,是因为前端不能识别超级权限,所以这里需要转换一下。
Set<String> assignedPermissions = null;
if(permissionService.checkSuperPermission(roleId)){
assignedPermissions = getSystemPermissionsString();
getSystemPermissions();
assignedPermissions = systemPermissionsString;
}
else{
assignedPermissions = permissionService.queryByRoleId(roleId);
......@@ -175,7 +171,7 @@ public class AdminRoleController {
*
* @return 系统所有权限列表和管理员已分配权限
*/
@RequiresPermissions("admin:role:permission")
@RequiresPermissions("admin:role:permission:get")
@RequiresPermissionsDesc(menu={"系统管理" , "角色管理"}, button="权限详情")
@GetMapping("/permissions")
public Object getPermissions(Integer roleId) {
......@@ -195,7 +191,7 @@ public class AdminRoleController {
* @param body
* @return
*/
@RequiresPermissions("admin:role:permission")
@RequiresPermissions("admin:role:permission:update")
@RequiresPermissionsDesc(menu={"系统管理" , "角色管理"}, button="权限变更")
@PostMapping("/permissions")
public Object updatePermissions(@RequestBody String body) {
......
......@@ -3,6 +3,7 @@ package org.linlinjava.litemall.admin;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.linlinjava.litemall.admin.util.PermVo;
import org.linlinjava.litemall.admin.util.Permission;
import org.linlinjava.litemall.admin.util.PermissionUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
......@@ -23,7 +24,8 @@ public class PermissionTest {
@Test
public void test() {
final String basicPackage = "org.linlinjava.litemall.admin";
List<PermVo> permVoList = PermissionUtil.listPermissions(context, basicPackage);
List<Permission> permissionList = PermissionUtil.listPermission(context, basicPackage);
List<PermVo> permVoList = PermissionUtil.listPermVo(permissionList);
permVoList.stream().forEach(System.out::println);
}
}
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment