mirror of
https://github.com/PlayEdu/PlayEdu
synced 2025-12-26 12:49:28 +08:00
优化checks
This commit is contained in:
@@ -5,13 +5,11 @@ import org.springframework.boot.ApplicationArguments;
|
||||
import org.springframework.boot.ApplicationRunner;
|
||||
import org.springframework.stereotype.Component;
|
||||
import xyz.playedu.api.constant.BPermissionConstant;
|
||||
import xyz.playedu.api.constant.BackendConstant;
|
||||
import xyz.playedu.api.domain.AdminPermission;
|
||||
import xyz.playedu.api.service.AdminPermissionService;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* @Author 杭州白书科技有限公司
|
||||
@@ -23,79 +21,129 @@ public class AdminPermissionCheck implements ApplicationRunner {
|
||||
@Autowired
|
||||
private AdminPermissionService permissionService;
|
||||
|
||||
private final String[][] ACTION_PERMISSIONS = {
|
||||
{"管理员", "0", "管理员-查看", BPermissionConstant.ADMIN_USER_INDEX},
|
||||
{"管理员", "5", "管理员-添加", BPermissionConstant.ADMIN_USER_STORE},
|
||||
{"管理员", "10", "管理员-编辑", BPermissionConstant.ADMIN_USER_UPDATE},
|
||||
{"管理员", "15", "管理员-删除", BPermissionConstant.ADMIN_USER_DESTROY},
|
||||
|
||||
{"管理员角色", "0", "管理员角色", BPermissionConstant.ADMIN_ROLE},
|
||||
|
||||
{"部门", "5", "部门-添加", BPermissionConstant.DEPARTMENT_STORE},
|
||||
{"部门", "10", "部门-编辑", BPermissionConstant.DEPARTMENT_UPDATE},
|
||||
{"部门", "15", "部门-删除", BPermissionConstant.DEPARTMENT_DESTROY},
|
||||
|
||||
{"资源分类", "0", "资源分类", BPermissionConstant.RESOURCE_CATEGORY},
|
||||
|
||||
{"学员", "0", "学员-查看", BPermissionConstant.USER_INDEX},
|
||||
{"学员", "5", "学员-添加", BPermissionConstant.USER_STORE},
|
||||
{"学员", "10", "学员-编辑", BPermissionConstant.USER_UPDATE},
|
||||
{"学员", "15", "学员-删除", BPermissionConstant.USER_DESTROY},
|
||||
|
||||
{"课程分类", "0", "课程分类", BPermissionConstant.COURSE_CATEGORY},
|
||||
{"课程", "0", "课程", BPermissionConstant.COURSE},
|
||||
};
|
||||
|
||||
private final String[][] DATA_PERMISSIONS = {
|
||||
{"管理员", "0", "邮箱", BPermissionConstant.DATA_ADMIN_EMAIL},
|
||||
|
||||
{"学员", "0", "邮箱", BPermissionConstant.DATA_USER_EMAIL},
|
||||
{"学员", "10", "姓名", BPermissionConstant.DATA_USER_NAME},
|
||||
{"学员", "10", "身份证号", BPermissionConstant.DATA_USER_ID_CARD},
|
||||
};
|
||||
private final Map<String, Map<String, AdminPermission[]>> permissions = new HashMap<>() {{
|
||||
put(BPermissionConstant.TYPE_ACTION, 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.DEPARTMENT_CUD);
|
||||
}},
|
||||
});
|
||||
put("资源分类", new AdminPermission[]{
|
||||
new AdminPermission() {{
|
||||
setSort(0);
|
||||
setName("新增|编辑|删除");
|
||||
setSlug(BPermissionConstant.RESOURCE_CATEGORY);
|
||||
}},
|
||||
});
|
||||
put("学员", new AdminPermission[]{
|
||||
new AdminPermission() {{
|
||||
setSort(0);
|
||||
setName("列表");
|
||||
setSlug(BPermissionConstant.USER_INDEX);
|
||||
}},
|
||||
new AdminPermission() {{
|
||||
setSort(10);
|
||||
setName("新增");
|
||||
setSlug(BPermissionConstant.USER_STORE);
|
||||
}},
|
||||
new AdminPermission() {{
|
||||
setSort(20);
|
||||
setName("新增");
|
||||
setSlug(BPermissionConstant.USER_STORE);
|
||||
}},
|
||||
new AdminPermission() {{
|
||||
setSort(30);
|
||||
setName("删除");
|
||||
setSlug(BPermissionConstant.USER_DESTROY);
|
||||
}},
|
||||
});
|
||||
put("课程", new AdminPermission[]{
|
||||
new AdminPermission() {{
|
||||
setSort(0);
|
||||
setName("新增|编辑|删除");
|
||||
setSlug(BPermissionConstant.COURSE);
|
||||
}},
|
||||
});
|
||||
}});
|
||||
put(BPermissionConstant.TYPE_DATA, new HashMap<>() {{
|
||||
put("管理员", new AdminPermission[]{
|
||||
new AdminPermission() {{
|
||||
setSort(0);
|
||||
setName("邮箱");
|
||||
setSlug(BPermissionConstant.DATA_ADMIN_EMAIL);
|
||||
}},
|
||||
});
|
||||
put("学员", new AdminPermission[]{
|
||||
new AdminPermission() {{
|
||||
setSort(0);
|
||||
setName("邮箱");
|
||||
setSlug(BPermissionConstant.DATA_USER_EMAIL);
|
||||
}},
|
||||
new AdminPermission() {{
|
||||
setSort(10);
|
||||
setName("姓名");
|
||||
setSlug(BPermissionConstant.DATA_USER_NAME);
|
||||
}},
|
||||
new AdminPermission() {{
|
||||
setSort(20);
|
||||
setName("身份证号");
|
||||
setSlug(BPermissionConstant.DATA_USER_ID_CARD);
|
||||
}},
|
||||
});
|
||||
}});
|
||||
}};
|
||||
|
||||
@Override
|
||||
public void run(ApplicationArguments args) throws Exception {
|
||||
public void run(ApplicationArguments args) {
|
||||
HashMap<String, Boolean> slugs = permissionService.allSlugs();
|
||||
List<AdminPermission> list = new ArrayList<>();
|
||||
Date now = new Date();
|
||||
|
||||
for (int i = 0; i < ACTION_PERMISSIONS.length; i++) {
|
||||
String[] item = ACTION_PERMISSIONS[i];
|
||||
String tmpSlug = item[3];
|
||||
if (slugs.get(tmpSlug) != null) {//已经存在
|
||||
continue;
|
||||
}
|
||||
AdminPermission permission = new AdminPermission();
|
||||
permissions.forEach((typeValue, group) -> {
|
||||
group.forEach((groupNameValue, item) -> {
|
||||
for (int i = 0; i < item.length; i++) {
|
||||
AdminPermission permissionItem = item[i];
|
||||
|
||||
permission.setGroupName(item[0]);
|
||||
permission.setSort(Integer.valueOf(item[1]));
|
||||
permission.setName(item[2]);
|
||||
permission.setSlug(tmpSlug);
|
||||
permission.setType(BPermissionConstant.TYPE_ACTION);
|
||||
permission.setCreatedAt(now);
|
||||
if (slugs.get(permissionItem.getSlug()) != null) {
|
||||
continue;
|
||||
}
|
||||
|
||||
list.add(permission);
|
||||
// 不存在
|
||||
list.add(new AdminPermission() {{
|
||||
setType(typeValue);
|
||||
setGroupName(groupNameValue);
|
||||
setSort(permissionItem.getSort());
|
||||
setName(permissionItem.getName());
|
||||
setSlug(permissionItem.getSlug());
|
||||
setCreatedAt(now);
|
||||
}});
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
if (list.size() > 0) {
|
||||
permissionService.saveBatch(list);
|
||||
}
|
||||
|
||||
for (int i = 0; i < DATA_PERMISSIONS.length; i++) {
|
||||
String[] item = DATA_PERMISSIONS[i];
|
||||
String tmpSlug = item[3];
|
||||
if (slugs.get(tmpSlug) != null) {//已经存在
|
||||
continue;
|
||||
}
|
||||
AdminPermission permission = new AdminPermission();
|
||||
|
||||
permission.setGroupName(item[0]);
|
||||
permission.setSort(Integer.valueOf(item[1]));
|
||||
permission.setName(item[2]);
|
||||
permission.setSlug(tmpSlug);
|
||||
permission.setType(BPermissionConstant.TYPE_DATA);
|
||||
permission.setCreatedAt(now);
|
||||
|
||||
list.add(permission);
|
||||
}
|
||||
|
||||
permissionService.saveBatch(list);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,20 +20,20 @@ public class AdminRoleCheck implements ApplicationRunner {
|
||||
@Autowired
|
||||
private AdminRoleService adminRoleService;
|
||||
|
||||
private final AdminRole superRole = new AdminRole() {{
|
||||
setName("超级管理员");
|
||||
setSlug(BackendConstant.SUPER_ADMIN_ROLE);
|
||||
setCreatedAt(new Date());
|
||||
setCreatedAt(new Date());
|
||||
}};
|
||||
|
||||
@Override
|
||||
public void run(ApplicationArguments args) throws Exception {
|
||||
AdminRole adminRole = adminRoleService.getBySlug(BackendConstant.SUPER_ADMIN_ROLE);
|
||||
if (adminRole != null) {//已存在超级管理权限
|
||||
return;
|
||||
}
|
||||
adminRole = new AdminRole();
|
||||
|
||||
adminRole.setName("超级管理角色");
|
||||
adminRole.setSlug(BackendConstant.SUPER_ADMIN_ROLE);
|
||||
adminRole.setCreatedAt(new Date());
|
||||
adminRole.setUpdatedAt(new Date());
|
||||
|
||||
adminRoleService.save(adminRole);
|
||||
adminRoleService.save(superRole);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user