chore: Fix inconsistency in behaviour when re-marking public (#19031)
Signed-off-by: Shrikant Sharat Kandula <shrikant@appsmith.com>
This commit is contained in:
parent
60806f7761
commit
467a1f65eb
|
|
@ -1,6 +1,7 @@
|
|||
package com.appsmith.server.services.ce;
|
||||
|
||||
import com.appsmith.external.constants.AnalyticsEvents;
|
||||
import com.appsmith.external.models.ActionDTO;
|
||||
import com.appsmith.external.models.Datasource;
|
||||
import com.appsmith.external.models.Policy;
|
||||
import com.appsmith.server.acl.AclPermission;
|
||||
|
|
@ -19,7 +20,6 @@ import com.appsmith.server.domains.Page;
|
|||
import com.appsmith.server.domains.QApplication;
|
||||
import com.appsmith.server.domains.Theme;
|
||||
import com.appsmith.server.domains.User;
|
||||
import com.appsmith.external.models.ActionDTO;
|
||||
import com.appsmith.server.dtos.ApplicationAccessDTO;
|
||||
import com.appsmith.server.dtos.GitAuthDTO;
|
||||
import com.appsmith.server.dtos.GitDeployKeyDTO;
|
||||
|
|
@ -39,7 +39,6 @@ import com.appsmith.server.services.ConfigService;
|
|||
import com.appsmith.server.services.PermissionGroupService;
|
||||
import com.appsmith.server.services.SessionUserService;
|
||||
import com.appsmith.server.services.TenantService;
|
||||
import com.mongodb.DBObject;
|
||||
import com.appsmith.server.solutions.ApplicationPermission;
|
||||
import com.appsmith.server.solutions.DatasourcePermission;
|
||||
import com.mongodb.client.result.UpdateResult;
|
||||
|
|
@ -48,10 +47,6 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|||
import org.springframework.dao.DuplicateKeyException;
|
||||
import org.springframework.data.mongodb.core.ReactiveMongoTemplate;
|
||||
import org.springframework.data.mongodb.core.convert.MongoConverter;
|
||||
import org.springframework.data.mongodb.core.query.Criteria;
|
||||
import org.springframework.data.mongodb.core.query.Query;
|
||||
import org.springframework.data.mongodb.core.query.Update;
|
||||
import org.springframework.security.core.context.ReactiveSecurityContextHolder;
|
||||
import org.springframework.util.MultiValueMap;
|
||||
import org.springframework.util.StringUtils;
|
||||
import reactor.core.publisher.Flux;
|
||||
|
|
@ -67,7 +62,6 @@ import java.util.Set;
|
|||
|
||||
import static com.appsmith.server.acl.AclPermission.MANAGE_APPLICATIONS;
|
||||
import static com.appsmith.server.acl.AclPermission.READ_APPLICATIONS;
|
||||
|
||||
import static org.apache.commons.lang3.StringUtils.isBlank;
|
||||
|
||||
@Slf4j
|
||||
|
|
@ -329,19 +323,17 @@ public class ApplicationServiceCEImpl extends BaseService<ApplicationRepository,
|
|||
|
||||
boolean isApplicationPublic = permissionGroupService.isEntityAccessible(application, applicationPermission.getReadPermission().getValue(), publicPermissionGroupId);
|
||||
|
||||
// Validity checks before proceeding further
|
||||
if (isApplicationPublic && applicationAccessDTO.getPublicAccess()) {
|
||||
// No change. The required public access is the same as current public access. Do nothing
|
||||
if (applicationAccessDTO.getPublicAccess().equals(isApplicationPublic)) {
|
||||
// No change. Return the application as is.
|
||||
return Mono.just(application);
|
||||
}
|
||||
|
||||
if (!isApplicationPublic && applicationAccessDTO.getPublicAccess().equals(false)) {
|
||||
return Mono.error(new AppsmithException(AppsmithError.UNSUPPORTED_OPERATION));
|
||||
}
|
||||
|
||||
// Now update the policies to change the access to the application
|
||||
return generateAndSetPoliciesForView(application, publicPermissionGroupId,
|
||||
applicationAccessDTO.getPublicAccess());
|
||||
return generateAndSetPoliciesForView(
|
||||
application,
|
||||
publicPermissionGroupId,
|
||||
applicationAccessDTO.getPublicAccess()
|
||||
);
|
||||
})
|
||||
.flatMap(this::setTransientFields);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user