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

Commitd5c9c32

Browse files
committed
fix: for now, allow to view non-published apps for logged in users
1 parentde03572 commitd5c9c32

File tree

4 files changed

+36
-24
lines changed

4 files changed

+36
-24
lines changed

‎server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/application/repository/ApplicationRepository.java

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33

44
importjava.util.Collection;
5-
importjava.util.List;
65

76
importjavax.annotation.Nonnull;
87

@@ -33,17 +32,7 @@ public interface ApplicationRepository extends ReactiveMongoRepository<Applicati
3332
@Query("{$or : [{'publishedApplicationDSL.queries.datasourceId':?0},{'editingApplicationDSL.queries.datasourceId':?0}]}")
3433
Flux<Application>findByDatasourceId(StringdatasourceId);
3534

36-
Flux<Application>findByIdIn(List<String>ids);
37-
38-
39-
// Falk: Why to combine? Marketplace-List and Agency-List are different Endpoints
40-
41-
/* @Query(value = "{$and:[{'publicToAll':true},{'$or':[{'publicToMarketplace':?0},{'agencyProfile':?1}]}, {'_id': { $in: ?2}}]}", fields = "{_id : 1}")
42-
Flux<Application> findByPublicToAllIsTrueAndPublicToMarketplaceIsOrAgencyProfileIsAndIdIn
43-
(Boolean publicToMarketplace, Boolean agencyProfile, Collection<String> ids); */
44-
45-
// this we do not need
46-
// Flux<Application> findByPublicToAllIsTrueAndPublicToMarketplaceIsAndAgencyProfileIsAndIdIn(Boolean publicToMarketplace, Boolean agencyProfile, Collection<String> ids);
35+
Flux<Application>findByIdIn(Collection<String>ids);
4736

4837
/**
4938
* Filter public applications from list of supplied IDs

‎server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/application/service/ApplicationService.java

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -206,12 +206,19 @@ public Mono<Boolean> setApplicationAsAgencyProfile(String applicationId, boolean
206206

207207
@NonEmptyMono
208208
@SuppressWarnings("ReactiveStreamsNullableInLambdaInTransform")
209-
publicMono<Set<String>>getFilteredPublicApplicationIds(ApplicationRequestTyperequestType,Collection<String>applicationIds,BooleanisAnonymous,BooleanisPrivateMarketplace) {
209+
publicMono<Set<String>>getFilteredPublicApplicationIds(ApplicationRequestTyperequestType,Collection<String>applicationIds,booleanisAnonymous,BooleanisPrivateMarketplace) {
210210

211211
switch(requestType)
212212
{
213213
casePUBLIC_TO_ALL:
214-
returngetPublicApplicationIds(applicationIds);
214+
if (isAnonymous)
215+
{
216+
returngetPublicApplicationIds(applicationIds);
217+
}
218+
else
219+
{
220+
returngetPrivateApplicationIds(applicationIds);
221+
}
215222
casePUBLIC_TO_MARKETPLACE:
216223
returngetPublicMarketplaceApplicationIds(applicationIds,isAnonymous,isPrivateMarketplace);
217224
caseAGENCY_PROFILE:
@@ -235,6 +242,19 @@ public Mono<Set<String>> getPublicApplicationIds(Collection<String> applicationI
235242
}
236243

237244

245+
/**
246+
* Find all private applications for viewing.
247+
*/
248+
@NonEmptyMono
249+
@SuppressWarnings("ReactiveStreamsNullableInLambdaInTransform")
250+
publicMono<Set<String>>getPrivateApplicationIds(Collection<String>applicationIds) {
251+
// TODO: in 2.4.0 we need to check whether the app was published or not
252+
returnrepository.findByIdIn(applicationIds)
253+
.map(HasIdAndAuditing::getId)
254+
.collect(Collectors.toSet());
255+
}
256+
257+
238258
/**
239259
* Find all marketplace applications - filter based on whether user is anonymous and whether it's a private marketplace
240260
*/

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

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010

1111
importjava.util.Collection;
1212
importjava.util.Collections;
13+
importjava.util.HashSet;
1314
importjava.util.List;
1415
importjava.util.Map;
1516
importjava.util.Set;
@@ -62,7 +63,7 @@ protected Mono<Map<String, List<ResourcePermission>>> getAnonymousUserPermission
6263
(Collection<String>resourceIds,ResourceActionresourceAction) {
6364

6465
Set<String>applicationIds =newHashSet(resourceIds);
65-
returnMono.zip(applicationService.getPublicApplicationIds(applicationIds),
66+
returnMono.zip(applicationService.getPrivateApplicationIds(applicationIds),
6667
templateSolution.getTemplateApplicationIds(applicationIds))
6768
.map(tuple -> {
6869
Set<String>publicAppIds =tuple.getT1();
@@ -81,9 +82,11 @@ protected Mono<Map<String, List<ResourcePermission>>> getAnonymousUserApplicatio
8182
}
8283

8384
Set<String>applicationIds =newHashSet(resourceIds);
84-
returnMono.zip(applicationService.getFilteredPublicApplicationIds(requestType,applicationIds,Boolean.TRUE,config.getMarketplace().isPrivateMode()),
85-
templateSolution.getTemplateApplicationIds(applicationIds))
86-
.map(tuple -> {
85+
returnMono.zip(applicationService.getFilteredPublicApplicationIds(requestType,applicationIds,Boolean.TRUE,config.getMarketplace().isPrivateMode())
86+
.defaultIfEmpty(newHashSet<>()),
87+
templateSolution.getTemplateApplicationIds(applicationIds)
88+
.defaultIfEmpty(newHashSet<>())
89+
).map(tuple -> {
8790
Set<String>publicAppIds =tuple.getT1();
8891
Set<String>templateAppIds =tuple.getT2();
8992
returncollectMap(union(publicAppIds,templateAppIds),identity(),this::getAnonymousUserPermission);

‎server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationApiService.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -224,18 +224,18 @@ private Mono<Void> checkApplicationStatus(Application application, ApplicationSt
224224
}
225225

226226
privateMono<Void>checkApplicationViewRequest(Applicationapplication,ApplicationRequestTypeexpected) {
227-
// TODO: The check is correct ( logically ) but we need to provide some time for the users to adapt. Will bring it back in the next release
228227

229-
//Falk: switched &&application.isPublicToAll()on again - seems here is the bug.
230-
if (expected ==ApplicationRequestType.PUBLIC_TO_ALL &&application.isPublicToAll()) {
228+
//TODO: checkapplication.isPublicToAll()from v2.4.0
229+
if (expected ==ApplicationRequestType.PUBLIC_TO_ALL) {
231230
returnMono.empty();
232231
}
233232

234233
// Falk: here is to check the ENV Variable LOWCODER_MARKETPLACE_PRIVATE_MODE
235234
// isPublicToMarketplace & isPublicToAll must be both true
236-
if (expected ==ApplicationRequestType.PUBLIC_TO_MARKETPLACE &&application.isPublicToMarketplace() &&application.isPublicToAll()) {
237-
returnMono.empty();
238-
}
235+
if (expected ==ApplicationRequestType.PUBLIC_TO_MARKETPLACE &&application.isPublicToMarketplace() &&application.isPublicToAll()) {
236+
returnMono.empty();
237+
}
238+
239239
//
240240
// Falk: application.agencyProfile() & isPublicToAll must be both true
241241
if (expected ==ApplicationRequestType.AGENCY_PROFILE &&application.agencyProfile() &&application.isPublicToAll()) {

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp