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);
+ }
+}