优化权限结构

This commit is contained in:
xxx 2023-11-13 11:29:47 +08:00
parent acb8b79edd
commit 82c53ed87f
5 changed files with 107 additions and 120 deletions

View File

@ -63,6 +63,7 @@ sa-token:
is-share: false is-share: false
jwt-secret-key: "playeduxyz" jwt-secret-key: "playeduxyz"
token-prefix: "Bearer" token-prefix: "Bearer"
is-log: false
playedu: playedu:
core: core:

View File

@ -40,6 +40,7 @@ public class BPermissionConstant {
public static final String USER_LEARN_DESTROY = "user-learn-destroy"; public static final String USER_LEARN_DESTROY = "user-learn-destroy";
public static final String COURSE = "course"; public static final String COURSE = "course";
public static final String COURSE_CUD = "course-cud";
public static final String COURSE_USER = "course-user"; public static final String COURSE_USER = "course-user";
public static final String COURSE_USER_DESTROY = "course-user-destroy"; public static final String COURSE_USER_DESTROY = "course-user-destroy";

View File

@ -29,7 +29,7 @@ import java.util.List;
*/ */
public interface AdminPermissionService extends IService<AdminPermission> { public interface AdminPermissionService extends IService<AdminPermission> {
HashMap<String, Boolean> allSlugs(); HashMap<String, Integer> allSlugs();
List<AdminPermission> listOrderBySortAsc(); List<AdminPermission> listOrderBySortAsc();

View File

@ -37,11 +37,11 @@ public class AdminPermissionServiceImpl extends ServiceImpl<AdminPermissionMappe
implements AdminPermissionService { implements AdminPermissionService {
@Override @Override
public HashMap<String, Boolean> allSlugs() { public HashMap<String, Integer> allSlugs() {
List<AdminPermission> data = list(); List<AdminPermission> data = list();
HashMap<String, Boolean> map = new HashMap<>(); HashMap<String, Integer> map = new HashMap<>();
for (AdminPermission permission : data) { for (AdminPermission permission : data) {
map.put(permission.getSlug(), true); map.put(permission.getSlug(), permission.getId());
} }
return map; return map;
} }

View File

@ -37,76 +37,19 @@ public class AdminPermissionCheck implements CommandLineRunner {
BPermissionConstant.TYPE_ACTION, BPermissionConstant.TYPE_ACTION,
new HashMap<>() { new HashMap<>() {
{ {
// 管理员 // 分类管理
put(
"管理员",
new AdminPermission[] {
new AdminPermission() {
{
setSort(0);
setName("列表");
setSlug(
BPermissionConstant
.ADMIN_USER_INDEX);
}
},
new AdminPermission() {
{
setSort(10);
setName("新增|编辑|删除");
setSlug(BPermissionConstant.ADMIN_USER_CUD);
}
},
});
// 管理员角色
put(
"管理员角色",
new AdminPermission[] {
new AdminPermission() {
{
setSort(0);
setName("新增|编辑|删除");
setSlug(BPermissionConstant.ADMIN_ROLE);
}
},
});
// 管理员日志
put(
"管理员日志",
new AdminPermission[] {
new AdminPermission() {
{
setSort(0);
setName("列表");
setSlug(BPermissionConstant.ADMIN_LOG);
}
},
});
// 部门
put(
"部门",
new AdminPermission[] {
new AdminPermission() {
{
setSort(0);
setName("新增|编辑|删除");
setSlug(BPermissionConstant.DEPARTMENT_CUD);
}
},
new AdminPermission() {
{
setSort(10);
setName("学员学习");
setSlug(
BPermissionConstant
.DEPARTMENT_USER_LEARN);
}
},
});
// 资源分类
put( put(
"分类管理", "分类管理",
new AdminPermission[] { new AdminPermission[] {
new AdminPermission() {
{
setSort(0);
setName("列表");
setSlug(
BPermissionConstant
.RESOURCE_CATEGORY_MENU);
}
},
new AdminPermission() { new AdminPermission() {
{ {
setSort(0); setSort(0);
@ -116,24 +59,15 @@ public class AdminPermissionCheck implements CommandLineRunner {
.RESOURCE_CATEGORY); .RESOURCE_CATEGORY);
} }
}, },
new AdminPermission() {
{
setSort(10);
setName("左侧菜单");
setSlug(
BPermissionConstant
.RESOURCE_CATEGORY_MENU);
}
},
}); });
// 资源分类 // 资源管理
put( put(
"资源管理", "资源管理",
new AdminPermission[] { new AdminPermission[] {
new AdminPermission() { new AdminPermission() {
{ {
setSort(10); setSort(30);
setName("左侧菜单"); setName("列表");
setSlug(BPermissionConstant.RESOURCE_MENU); setSlug(BPermissionConstant.RESOURCE_MENU);
} }
}, },
@ -173,20 +107,41 @@ public class AdminPermissionCheck implements CommandLineRunner {
new AdminPermission() { new AdminPermission() {
{ {
setSort(40); setSort(40);
setName("学习"); setName("学习进度-查看");
setSlug(BPermissionConstant.USER_LEARN); setSlug(BPermissionConstant.USER_LEARN);
} }
}, },
new AdminPermission() { new AdminPermission() {
{ {
setSort(50); setSort(50);
setName("学习-删除"); setName("学习进度-记录删除");
setSlug( setSlug(
BPermissionConstant BPermissionConstant
.USER_LEARN_DESTROY); .USER_LEARN_DESTROY);
} }
}, },
}); });
// 部门
put(
"部门",
new AdminPermission[] {
new AdminPermission() {
{
setSort(0);
setName("新增|编辑|删除");
setSlug(BPermissionConstant.DEPARTMENT_CUD);
}
},
new AdminPermission() {
{
setSort(10);
setName("查看部门学员学习进度");
setSlug(
BPermissionConstant
.DEPARTMENT_USER_LEARN);
}
},
});
// 线上课 // 线上课
put( put(
"线上课", "线上课",
@ -194,10 +149,17 @@ public class AdminPermissionCheck implements CommandLineRunner {
new AdminPermission() { new AdminPermission() {
{ {
setSort(0); setSort(0);
setName("新增|编辑|删除"); setName("列表");
setSlug(BPermissionConstant.COURSE); setSlug(BPermissionConstant.COURSE);
} }
}, },
new AdminPermission() {
{
setSort(5);
setName("新增|编辑|删除");
setSlug(BPermissionConstant.COURSE_CUD);
}
},
new AdminPermission() { new AdminPermission() {
{ {
setSort(10); setSort(10);
@ -215,23 +177,9 @@ public class AdminPermissionCheck implements CommandLineRunner {
} }
}, },
}); });
// 其它
put(
"其它",
new AdminPermission[] {
new AdminPermission() {
{
setSort(0);
setName("修改登录密码");
setSlug(
BPermissionConstant
.PASSWORD_CHANGE);
}
},
});
// 系统配置 // 系统配置
put( put(
"系统配置", "系统",
new AdminPermission[] { new AdminPermission[] {
new AdminPermission() { new AdminPermission() {
{ {
@ -240,14 +188,48 @@ public class AdminPermissionCheck implements CommandLineRunner {
setSlug(BPermissionConstant.SYSTEM_CONFIG); setSlug(BPermissionConstant.SYSTEM_CONFIG);
} }
}, },
});
// 其它
put(
"其它权限",
new AdminPermission[] {
new AdminPermission() { new AdminPermission() {
{ {
setSort(0); setSort(10);
setName("管理员日志");
setSlug(BPermissionConstant.ADMIN_LOG);
}
},
new AdminPermission() {
{
setSort(15);
setName("管理员角色");
setSlug(BPermissionConstant.ADMIN_ROLE);
}
},
new AdminPermission() {
{
setSort(20);
setName("管理员-列表");
setSlug(
BPermissionConstant
.ADMIN_USER_INDEX);
}
},
new AdminPermission() {
{
setSort(25);
setName("管理员-新增|编辑|删除");
setSlug(BPermissionConstant.ADMIN_USER_CUD);
}
},
new AdminPermission() {
{
setSort(30);
setName("修改登录密码");
setSlug(
BPermissionConstant
.PASSWORD_CHANGE);
}
},
new AdminPermission() {
{
setSort(35);
setName("文件上传"); setName("文件上传");
setSlug(BPermissionConstant.UPLOAD); setSlug(BPermissionConstant.UPLOAD);
} }
@ -312,7 +294,7 @@ public class AdminPermissionCheck implements CommandLineRunner {
@Override @Override
public void run(String... args) throws Exception { public void run(String... args) throws Exception {
HashMap<String, Boolean> slugs = permissionService.allSlugs(); HashMap<String, Integer> slugs = permissionService.allSlugs();
List<AdminPermission> list = new ArrayList<>(); List<AdminPermission> list = new ArrayList<>();
Date now = new Date(); Date now = new Date();
@ -320,25 +302,28 @@ public class AdminPermissionCheck implements CommandLineRunner {
(typeValue, group) -> { (typeValue, group) -> {
group.forEach( group.forEach(
(groupNameValue, item) -> { (groupNameValue, item) -> {
for (int i = 0; i < item.length; i++) { for (AdminPermission permissionItem : item) {
AdminPermission permissionItem = item[i]; AdminPermission newPermissionItem =
if (slugs.get(permissionItem.getSlug()) != null) {
continue;
}
// 不存在
list.add(
new AdminPermission() { new AdminPermission() {
{ {
setType(typeValue); setType(typeValue);
setGroupName(groupNameValue); setGroupName(groupNameValue);
setSort(permissionItem.getSort()); setSort(permissionItem.getSort());
setName(permissionItem.getName()); setName(permissionItem.getName());
setSlug(permissionItem.getSlug());
setCreatedAt(now);
} }
}); };
Integer existsId = slugs.get(permissionItem.getSlug());
if (existsId != null && existsId > 0) {
newPermissionItem.setId(existsId);
permissionService.updateById(newPermissionItem);
continue;
}
// 不存在
newPermissionItem.setCreatedAt(now);
newPermissionItem.setSlug(permissionItem.getSlug());
list.add(newPermissionItem);
} }
}); });
}); });