Browse Source

Merge remote-tracking branch 'origin/master'

liujq 5 years ago
parent
commit
541b6d9880

+ 17 - 0
.github/workflows/maven.yml

@@ -0,0 +1,17 @@
+name: Java CI
+
+on: [push]
+
+jobs:
+  build:
+
+    runs-on: ubuntu-latest
+
+    steps:
+    - uses: actions/checkout@v1
+    - name: Set up JDK 1.8
+      uses: actions/setup-java@v1
+      with:
+        java-version: 1.8
+    - name: Build with Maven
+      run: mvn -B package

+ 17 - 18
jetlinks-manager/authentication-manager/src/main/java/org/jetlinks/community/auth/web/AuthorizationSettingDetailController.java

@@ -35,26 +35,25 @@ public class AuthorizationSettingDetailController {
     @PostMapping("/_save")
     @SaveAction
     public Mono<Boolean> saveSettings(@RequestBody Flux<AuthorizationSettingDetail> detailFlux) {
-
-        return settingService
-            .save(detailFlux
-                .flatMap(detail -> settingService.createDelete()
-                    .where(AuthorizationSettingEntity::getDimensionType, detail.getTargetType())
-                    .and(AuthorizationSettingEntity::getDimensionTarget, detail.getTargetId())
-                    .execute()
-                    .thenReturn(detail))
-                .flatMap(detail ->
-                    Flux.fromIterable(providers)
-                        .flatMap(provider -> provider
-                            .getAllType()
-                            .filter(type -> type.getId().equals(detail.getTargetType()))
-                            .singleOrEmpty()
-                            .flatMap(type -> provider.getDimensionById(type, detail.getTargetId())))
+        return detailFlux
+            //先删除旧的权限设置
+            .flatMap(detail -> settingService.getRepository().createDelete()
+                .where(AuthorizationSettingEntity::getDimensionType, detail.getTargetType())
+                .and(AuthorizationSettingEntity::getDimensionTarget, detail.getTargetId())
+                .execute()
+                .thenReturn(detail))
+            .flatMap(detail ->
+                Flux.fromIterable(providers)
+                    .flatMap(provider -> provider
+                        .getAllType()
+                        .filter(type -> type.getId().equals(detail.getTargetType()))
                         .singleOrEmpty()
-                        .flatMapIterable(detail::toEntity)
-                        .switchIfEmpty(Flux.defer(() -> Flux.fromIterable(detail.toEntity())))
-                )
+                        .flatMap(type -> provider.getDimensionById(type, detail.getTargetId())))
+                    .singleOrEmpty()
+                    .flatMapIterable(detail::toEntity)
+                    .switchIfEmpty(Flux.defer(() -> Flux.fromIterable(detail.toEntity())))
             )
+            .as(settingService::save)
             .thenReturn(true);
     }
 

+ 5 - 5
jetlinks-manager/authentication-manager/src/main/java/org/jetlinks/community/auth/web/request/AuthorizationSettingDetail.java

@@ -70,7 +70,7 @@ public class AuthorizationSettingDetail {
         /**
          * 字段权限
          */
-        private List<FiledAccess> fieldAccess;
+        private List<FieldAccess> fieldAccess;
 
         /**
          * 数据权限
@@ -84,7 +84,7 @@ public class AuthorizationSettingDetail {
             this.dataAccess = new ArrayList<>();
 
             //filed : access
-            Map<String, FiledAccess> filedAccessMap = new LinkedHashMap<>();
+            Map<String, FieldAccess> filedAccessMap = new LinkedHashMap<>();
 
 
             //type : access
@@ -99,7 +99,7 @@ public class AuthorizationSettingDetail {
 
                         for (String field : fields) {
                             filedAccessMap
-                                .computeIfAbsent(field, filedName -> new FiledAccess(filedName, new HashSet<>()))
+                                .computeIfAbsent(field, filedName -> new FieldAccess(filedName, new HashSet<>()))
                                 .getAction().add(access.getAction());
                         }
                     } else {
@@ -127,7 +127,7 @@ public class AuthorizationSettingDetail {
             List<DataAccessEntity> entities = new ArrayList<>();
             if (CollectionUtils.isNotEmpty(fieldAccess)) {
                 Map<String, Set<String>> group = new HashMap<>();
-                for (FiledAccess access : fieldAccess) {
+                for (FieldAccess access : fieldAccess) {
                     for (String action : access.getAction()) {
                         group.computeIfAbsent(action, r -> new HashSet<>())
                             .add(access.name);
@@ -212,7 +212,7 @@ public class AuthorizationSettingDetail {
     @Setter
     @AllArgsConstructor
     @NoArgsConstructor
-    public static class FiledAccess {
+    public static class FieldAccess {
 
         /**
          * 字段名