Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit0c4ac50

Browse files
author
Thomas
committed
Bundle Test Case Finished
1 parent92c2845 commit0c4ac50

File tree

9 files changed

+364
-23
lines changed

9 files changed

+364
-23
lines changed

‎server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/bundle/model/Bundle.java‎

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
importlombok.NoArgsConstructor;
77
importlombok.Setter;
88
importlombok.experimental.SuperBuilder;
9+
importorg.apache.commons.lang3.BooleanUtils;
910
importorg.lowcoder.sdk.models.HasIdAndAuditing;
1011
importorg.springframework.data.mongodb.core.mapping.Document;
1112

@@ -32,4 +33,16 @@ public class Bundle extends HasIdAndAuditing {
3233

3334
privateMap<String,Object>editingBundleDSL;
3435
privateMap<String,Object>publishedBundleDSL;
36+
37+
publicbooleanisPublicToAll() {
38+
returnBooleanUtils.toBooleanDefaultIfNull(publicToAll,false);
39+
}
40+
41+
publicbooleanisPublicToMarketplace() {
42+
returnBooleanUtils.toBooleanDefaultIfNull(publicToMarketplace,false);
43+
}
44+
45+
publicbooleanagencyProfile() {
46+
returnBooleanUtils.toBooleanDefaultIfNull(agencyProfile,false);
47+
}
3548
}

‎server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/bundle/service/BundleService.java‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@ public interface BundleService {
1717

1818
Mono<Bundle>findById(Stringid);
1919

20+
Mono<Bundle>findByIdWithoutDsl(Stringid);
21+
2022
Mono<Bundle>create(Bundlebundle,StringuserId);
2123

2224
Flux<Bundle>findByUserId(StringbundleId);

‎server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/bundle/service/BundleServiceImpl.java‎

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,16 @@ public Mono<Bundle> findById(String id) {
5252
.switchIfEmpty(Mono.error(newBizException(BizError.NO_RESOURCE_FOUND,"BUNDLE_NOT_FOUND",id)));
5353
}
5454

55+
@Override
56+
publicMono<Bundle>findByIdWithoutDsl(Stringid) {
57+
if (id ==null) {
58+
returnMono.error(newBizException(BizError.INVALID_PARAMETER,"INVALID_PARAMETER",FieldName.ID));
59+
}
60+
61+
returnrepository.findById(id)
62+
.switchIfEmpty(Mono.error(newBizException(BizError.NO_RESOURCE_FOUND,"CANT_FIND_BUNDLE",id)));
63+
}
64+
5565
@Override
5666
publicMono<Bundle>create(Bundlenewbundle,StringvisitorId) {
5767
returnrepository.save(newbundle)

‎server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/permission/service/ResourcePermissionService.java‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ Mono<Map<String, Collection<ResourcePermission>>> getByResourceTypeAndResourceId
2323

2424
@NonEmptyMono
2525
Mono<List<ResourcePermission>>getByApplicationId(StringapplicationId);
26+
@NonEmptyMono
27+
Mono<List<ResourcePermission>>getByBundleId(StringbundleId);
2628

2729
@NonEmptyMono
2830
Mono<List<ResourcePermission>>getByDataSourceId(StringdataSourceId);

‎server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/permission/service/ResourcePermissionServiceImpl.java‎

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,12 @@ public Mono<List<ResourcePermission>> getByApplicationId(String applicationId) {
5757
returngetByResourceTypeAndResourceId(ResourceType.APPLICATION,applicationId);
5858
}
5959

60+
@Override
61+
@NonEmptyMono
62+
publicMono<List<ResourcePermission>>getByBundleId(StringbundleId) {
63+
returngetByResourceTypeAndResourceId(ResourceType.BUNDLE,bundleId);
64+
}
65+
6066
@Override
6167
@NonEmptyMono
6268
publicMono<List<ResourcePermission>>getByDataSourceId(StringdataSourceId) {

‎server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/bundle/BundleApiService.java‎

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ public interface BundleApiService {
3131

3232
Mono<Boolean>restore(StringbundleId);
3333
Flux<BundleInfoView>getRecycledBundles();
34+
Mono<BundlePermissionView>getBundlePermissions(StringbundleId);
3435

3536
Mono<BundleInfoView>update(Bundlebundle);
3637
Mono<BundleInfoView>publish(StringbundleId);
@@ -46,11 +47,11 @@ public interface BundleApiService {
4647
@Nonnull
4748
Mono<ResourcePermission>checkPermissionWithReadableErrorMsg(StringbundleId,ResourceActionaction);
4849

49-
Mono<Void>grantPermission(StringbundleId,Set<String>userIds,Set<String>groupIds,ResourceRolerole);
50+
Mono<Boolean>grantPermission(StringbundleId,Set<String>userIds,Set<String>groupIds,ResourceRolerole);
5051

51-
Mono<Void>updatePermission(StringbundleId,StringpermissionId,ResourceRolerole);
52+
Mono<Boolean>updatePermission(StringbundleId,StringpermissionId,ResourceRolerole);
5253

53-
Mono<Void>removePermission(StringbundleId,StringpermissionId);
54+
Mono<Boolean>removePermission(StringbundleId,StringpermissionId);
5455

5556
Mono<BundlePermissionView>getPermissions(StringbundleId);
5657

‎server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/bundle/BundleApiServiceImpl.java‎

Lines changed: 61 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
importjakarta.annotation.Nonnull;
44
importjakarta.annotation.Nullable;
55
importlombok.RequiredArgsConstructor;
6-
importorg.apache.commons.collections4.CollectionUtils;
76
importorg.apache.commons.lang3.StringUtils;
87
importorg.lowcoder.api.application.view.ApplicationInfoView;
98
importorg.lowcoder.api.application.view.ApplicationPermissionView;
@@ -200,6 +199,42 @@ public Mono<Boolean> restore(String bundleId) {
200199
publicFlux<BundleInfoView>getRecycledBundles() {
201200
returnuserHomeApiService.getAllAuthorisedBundles4CurrentOrgMember(BundleStatus.RECYCLED);
202201
}
202+
@Override
203+
publicMono<BundlePermissionView>getBundlePermissions(StringbundleId) {
204+
205+
Mono<List<ResourcePermission>>bundlePermissions =resourcePermissionService.getByBundleId(bundleId).cache();
206+
207+
Mono<List<PermissionItemView>>groupPermissionPairsMono =bundlePermissions
208+
.flatMap(permissionHelper::getGroupPermissions);
209+
210+
Mono<List<PermissionItemView>>userPermissionPairsMono =bundlePermissions
211+
.flatMap(permissionHelper::getUserPermissions);
212+
213+
returncheckCurrentUserBundlePermission(bundleId,READ_BUNDLES)
214+
.then(bundleService.findByIdWithoutDsl(bundleId))
215+
.delayUntil(bundle ->checkBundleStatus(bundle,BundleStatus.NORMAL))
216+
.flatMap(bundle -> {
217+
StringcreatorId =bundle.getCreatedBy();
218+
StringorgId =bundle.getOrganizationId();
219+
220+
Mono<Organization>orgMono =organizationService.getById(orgId);
221+
returnMono.zip(groupPermissionPairsMono,userPermissionPairsMono,orgMono)
222+
.map(tuple -> {
223+
List<PermissionItemView>groupPermissionPairs =tuple.getT1();
224+
List<PermissionItemView>userPermissionPairs =tuple.getT2();
225+
Organizationorganization =tuple.getT3();
226+
returnBundlePermissionView.builder()
227+
.groupPermissions(groupPermissionPairs)
228+
.userPermissions(userPermissionPairs)
229+
.creatorId(creatorId)
230+
.orgName(organization.getName())
231+
.publicToAll(bundle.isPublicToAll())
232+
.publicToMarketplace(bundle.isPublicToMarketplace())
233+
.agencyProfile(bundle.agencyProfile())
234+
.build();
235+
});
236+
});
237+
}
203238

204239
privateMono<Void>checkBundleStatus(StringbundleId,BundleStatusexpected) {
205240
returnbundleService.findById(bundleId)
@@ -511,30 +546,38 @@ private Mono<Boolean> isCreator(String bundleId) {
511546
}
512547

513548
@Override
514-
publicMono<Void>grantPermission(StringbundleId,Set<String>userIds,Set<String>groupIds,ResourceRolerole) {
515-
if (CollectionUtils.isEmpty(userIds) &&CollectionUtils.isEmpty(groupIds)) {
516-
returnMono.empty();
549+
publicMono<Boolean>grantPermission(StringbundleId,Set<String>userIds,Set<String>groupIds,ResourceRolerole) {
550+
if (userIds.isEmpty() &&groupIds.isEmpty()) {
551+
returnMono.just(true);
517552
}
518-
returnMono.from(checkManagePermission(bundleId))
519-
.then(checkBundleExist(bundleId))
520-
.then(Mono.defer(() ->resourcePermissionService.insertBatchPermission(ResourceType.BUNDLE,bundleId,userIds,groupIds,role)))
521-
.then();
553+
554+
returncheckCurrentUserBundlePermission(bundleId,MANAGE_BUNDLES)
555+
.then(bundleService.findByIdWithoutDsl(bundleId))
556+
.delayUntil(bundle ->checkBundleStatus(bundle,BundleStatus.NORMAL))
557+
.switchIfEmpty(deferredError(BizError.BUNDLE_NOT_EXIST,"BUNDLE_NOT_FOUND",bundleId))
558+
.then(resourcePermissionService.insertBatchPermission(ResourceType.BUNDLE,bundleId,
559+
userIds,groupIds,role))
560+
.thenReturn(true);
522561
}
523562

524563
@Override
525-
publicMono<Void>updatePermission(StringbundleId,StringpermissionId,ResourceRolerole) {
526-
returnMono.from(checkManagePermission(bundleId))
527-
.then(checkPermissionResource(permissionId,bundleId))
528-
.then(resourcePermissionService.updateRoleById(permissionId,role))
529-
.then();
564+
publicMono<Boolean>updatePermission(StringbundleId,StringpermissionId,ResourceRolerole) {
565+
returncheckCurrentUserBundlePermission(bundleId,MANAGE_BUNDLES)
566+
.then(checkBundleStatus(bundleId,BundleStatus.NORMAL))
567+
.then(resourcePermissionService.getById(permissionId))
568+
.filter(permission ->StringUtils.equals(permission.getResourceId(),bundleId))
569+
.switchIfEmpty(deferredError(ILLEGAL_BUNDLE_PERMISSION_ID,"ILLEGAL_BUNDLE_PERMISSION_ID"))
570+
.then(resourcePermissionService.updateRoleById(permissionId,role));
530571
}
531572

532573
@Override
533-
publicMono<Void>removePermission(StringbundleId,StringpermissionId) {
534-
returnMono.from(checkManagePermission(bundleId))
535-
.then(checkPermissionResource(permissionId,bundleId))
536-
.then(resourcePermissionService.removeById(permissionId))
537-
.then();
574+
publicMono<Boolean>removePermission(StringbundleId,StringpermissionId) {
575+
returncheckCurrentUserBundlePermission(bundleId,MANAGE_BUNDLES)
576+
.then(checkBundleStatus(bundleId,BundleStatus.NORMAL))
577+
.then(resourcePermissionService.getById(permissionId))
578+
.filter(permission ->StringUtils.equals(permission.getResourceId(),bundleId))
579+
.switchIfEmpty(deferredError(ILLEGAL_BUNDLE_PERMISSION_ID,"ILLEGAL_BUNDLE_PERMISSION_ID"))
580+
.then(resourcePermissionService.removeById(permissionId));
538581
}
539582

540583
privateMono<Void>checkPermissionResource(StringpermissionId,StringbundleId) {

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp