From e2bdc93429fe0e9facf09001828c08ee5221bb74 Mon Sep 17 00:00:00 2001 From: Shikong <919411476@qq.com> Date: Fri, 12 May 2023 11:33:29 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=20location=5Frecord=20?= =?UTF-8?q?=E6=9D=83=E9=99=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/sk-matrix-service/.idea/compiler.xml | 2 +- .../v2/model/casbin/CasbinConstant.java | 2 -- .../init/LocationRecordRoleRegister.java | 32 +++++++++++++++++++ 3 files changed, 33 insertions(+), 3 deletions(-) create mode 100644 backend/java/sk-matrix-service/services/src/main/java/cn/skcks/matrix/v2/services/casbin/init/LocationRecordRoleRegister.java diff --git a/backend/java/sk-matrix-service/.idea/compiler.xml b/backend/java/sk-matrix-service/.idea/compiler.xml index 4fbcc19..509a652 100644 --- a/backend/java/sk-matrix-service/.idea/compiler.xml +++ b/backend/java/sk-matrix-service/.idea/compiler.xml @@ -24,8 +24,8 @@ - + diff --git a/backend/java/sk-matrix-service/model/src/main/java/cn/skcks/matrix/v2/model/casbin/CasbinConstant.java b/backend/java/sk-matrix-service/model/src/main/java/cn/skcks/matrix/v2/model/casbin/CasbinConstant.java index 2b7fef9..d104054 100644 --- a/backend/java/sk-matrix-service/model/src/main/java/cn/skcks/matrix/v2/model/casbin/CasbinConstant.java +++ b/backend/java/sk-matrix-service/model/src/main/java/cn/skcks/matrix/v2/model/casbin/CasbinConstant.java @@ -1,7 +1,5 @@ package cn.skcks.matrix.v2.model.casbin; -import lombok.experimental.UtilityClass; - public class CasbinConstant { public static final String SEPARATOR = "::"; diff --git a/backend/java/sk-matrix-service/services/src/main/java/cn/skcks/matrix/v2/services/casbin/init/LocationRecordRoleRegister.java b/backend/java/sk-matrix-service/services/src/main/java/cn/skcks/matrix/v2/services/casbin/init/LocationRecordRoleRegister.java new file mode 100644 index 0000000..8418543 --- /dev/null +++ b/backend/java/sk-matrix-service/services/src/main/java/cn/skcks/matrix/v2/services/casbin/init/LocationRecordRoleRegister.java @@ -0,0 +1,32 @@ +package cn.skcks.matrix.v2.services.casbin.init; + +import cn.skcks.matrix.v2.model.casbin.CasbinConstant; +import cn.skcks.matrix.v2.model.route.dto.RouteInfo; +import cn.skcks.matrix.v2.services.casbin.CasbinRegister; +import cn.skcks.matrix.v2.services.role.RoleService; +import groovy.util.logging.Slf4j; +import lombok.RequiredArgsConstructor; +import org.casbin.jcasbin.main.Enforcer; +import org.springframework.stereotype.Component; + +import java.util.List; + +import static cn.skcks.matrix.v2.services.casbin.CasbinService.*; +import static cn.skcks.matrix.v2.services.casbin.CasbinService.DEFAULT_SYSTEM; + +@Slf4j +@Component +@RequiredArgsConstructor +public class LocationRecordRoleRegister implements CasbinRegister { + public static final String LOCATION_RECORD_PERMISSION = "location_record"; + public static final String LOCATION_RECORD_PERMISSION_NAME = "定位记录"; + + @Override + public void register(Enforcer enforcer, List routes, RoleService roleService) { + List matchRoutes = routes.stream() + .filter(routeInfo -> routeInfo.requestUrl.startsWith("/location/record")) + .toList(); + roleService.initRole(LOCATION_RECORD_PERMISSION, LOCATION_RECORD_PERMISSION_NAME, true); + CasbinRegister.addPolicies(enforcer, CasbinConstant.ROLE_PREFIX + LOCATION_RECORD_PERMISSION, DEFAULT_SYSTEM, matchRoutes); + } +}