Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import com.appsmith.server.acl.AclPermission;
import com.appsmith.server.domains.Application;
import com.appsmith.server.domains.ApplicationMode;
import com.appsmith.server.domains.GitAuth;
import com.appsmith.server.dtos.ApplicationAccessDTO;
import com.appsmith.server.dtos.GitAuthDTO;
Expand Down Expand Up @@ -95,4 +96,7 @@ Mono<Integer> setAppTheme(
Mono<Boolean> isApplicationConnectedToGit(String applicationId);

Mono<Void> updateProtectedBranches(String applicationId, List<String> protectedBranches);

Mono<Application> findByDefaultIdBranchNameAndApplicationMode(
String defaultApplicationId, String branchName, ApplicationMode mode);
}
Original file line number Diff line number Diff line change
Expand Up @@ -659,24 +659,15 @@ private Flux<Application> setTransientFields(Flux<Application> applicationsFlux)
permissionGroupService.getPublicPermissionGroupId().cache().repeat();

// Set isPublic field if the application is public
Flux<Application> updatedApplicationWithIsPublicFlux = permissionGroupService
.getPublicPermissionGroupId()
.cache()
.repeat()
.zipWith(applicationsFlux)
.map(tuple -> {
Application application = tuple.getT2();
String publicPermissionGroupId = tuple.getT1();

application.setIsPublic(permissionGroupService.isEntityAccessible(
application,
applicationPermission.getReadPermission().getValue(),
publicPermissionGroupId));
return publicPermissionGroupIdFlux.zipWith(applicationsFlux).map(tuple -> {
Application application = tuple.getT2();
String publicPermissionGroupId = tuple.getT1();

return application;
});
application.setIsPublic(permissionGroupService.isEntityAccessible(
application, applicationPermission.getReadPermission().getValue(), publicPermissionGroupId));

return updatedApplicationWithIsPublicFlux;
return application;
});
}

/**
Expand Down Expand Up @@ -884,7 +875,7 @@ public Mono<String> findBranchedApplicationId(
AppsmithError.NO_RESOURCE_FOUND,
FieldName.APPLICATION,
defaultApplicationId + ", " + branchName)))
.map(Application::getId);
.map(application -> application.getId());
}

public Mono<String> findBranchedApplicationId(
Expand Down Expand Up @@ -1050,4 +1041,23 @@ public Mono<Void> updateProtectedBranches(String applicationId, List<String> pro
}))
.then();
}

/**
* Gets branched application with the right permission set based on mode of application
* @param defaultApplicationId : default app id
* @param branchName : branch name of the application
* @param mode : is it edit mode or view mode
* @return : returns a publisher of branched application
*/
@Override
public Mono<Application> findByDefaultIdBranchNameAndApplicationMode(
String defaultApplicationId, String branchName, ApplicationMode mode) {
AclPermission permissionForApplication = ApplicationMode.PUBLISHED.equals(mode)
? applicationPermission.getReadPermission()
: applicationPermission.getEditPermission();

return findByBranchNameAndDefaultApplicationId(branchName, defaultApplicationId, permissionForApplication)
// sets isPublic field in the application
.flatMap(this::setTransientFields);
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package com.appsmith.server.newpages.base;

import com.appsmith.server.acl.AclPermission;
import com.appsmith.server.domains.Application;
import com.appsmith.server.domains.ApplicationMode;
import com.appsmith.server.domains.Layout;
import com.appsmith.server.domains.NewPage;
Expand Down Expand Up @@ -92,4 +93,9 @@ Mono<NewPage> findByGitSyncIdAndDefaultApplicationId(
Flux<NewPage> findPageSlugsByApplicationIds(List<String> applicationIds, AclPermission aclPermission);

Mono<Void> publishPages(Collection<String> pageIds, AclPermission permission);

ApplicationPagesDTO getApplicationPagesDTO(Application application, List<NewPage> newPages, boolean viewMode);

Mono<ApplicationPagesDTO> createApplicationPagesDTO(
Application branchedApplication, List<NewPage> newPages, boolean viewMode, boolean isRecentlyAccessed);
}
Loading