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;
|
package com.appsmith.server.services.ce;
|
||||||
|
|
||||||
import com.appsmith.external.constants.AnalyticsEvents;
|
import com.appsmith.external.constants.AnalyticsEvents;
|
||||||
|
import com.appsmith.external.models.ActionDTO;
|
||||||
import com.appsmith.external.models.Datasource;
|
import com.appsmith.external.models.Datasource;
|
||||||
import com.appsmith.external.models.Policy;
|
import com.appsmith.external.models.Policy;
|
||||||
import com.appsmith.server.acl.AclPermission;
|
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.QApplication;
|
||||||
import com.appsmith.server.domains.Theme;
|
import com.appsmith.server.domains.Theme;
|
||||||
import com.appsmith.server.domains.User;
|
import com.appsmith.server.domains.User;
|
||||||
import com.appsmith.external.models.ActionDTO;
|
|
||||||
import com.appsmith.server.dtos.ApplicationAccessDTO;
|
import com.appsmith.server.dtos.ApplicationAccessDTO;
|
||||||
import com.appsmith.server.dtos.GitAuthDTO;
|
import com.appsmith.server.dtos.GitAuthDTO;
|
||||||
import com.appsmith.server.dtos.GitDeployKeyDTO;
|
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.PermissionGroupService;
|
||||||
import com.appsmith.server.services.SessionUserService;
|
import com.appsmith.server.services.SessionUserService;
|
||||||
import com.appsmith.server.services.TenantService;
|
import com.appsmith.server.services.TenantService;
|
||||||
import com.mongodb.DBObject;
|
|
||||||
import com.appsmith.server.solutions.ApplicationPermission;
|
import com.appsmith.server.solutions.ApplicationPermission;
|
||||||
import com.appsmith.server.solutions.DatasourcePermission;
|
import com.appsmith.server.solutions.DatasourcePermission;
|
||||||
import com.mongodb.client.result.UpdateResult;
|
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.dao.DuplicateKeyException;
|
||||||
import org.springframework.data.mongodb.core.ReactiveMongoTemplate;
|
import org.springframework.data.mongodb.core.ReactiveMongoTemplate;
|
||||||
import org.springframework.data.mongodb.core.convert.MongoConverter;
|
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.MultiValueMap;
|
||||||
import org.springframework.util.StringUtils;
|
import org.springframework.util.StringUtils;
|
||||||
import reactor.core.publisher.Flux;
|
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.MANAGE_APPLICATIONS;
|
||||||
import static com.appsmith.server.acl.AclPermission.READ_APPLICATIONS;
|
import static com.appsmith.server.acl.AclPermission.READ_APPLICATIONS;
|
||||||
|
|
||||||
import static org.apache.commons.lang3.StringUtils.isBlank;
|
import static org.apache.commons.lang3.StringUtils.isBlank;
|
||||||
|
|
||||||
@Slf4j
|
@Slf4j
|
||||||
|
|
@ -329,19 +323,17 @@ public class ApplicationServiceCEImpl extends BaseService<ApplicationRepository,
|
||||||
|
|
||||||
boolean isApplicationPublic = permissionGroupService.isEntityAccessible(application, applicationPermission.getReadPermission().getValue(), publicPermissionGroupId);
|
boolean isApplicationPublic = permissionGroupService.isEntityAccessible(application, applicationPermission.getReadPermission().getValue(), publicPermissionGroupId);
|
||||||
|
|
||||||
// Validity checks before proceeding further
|
if (applicationAccessDTO.getPublicAccess().equals(isApplicationPublic)) {
|
||||||
if (isApplicationPublic && applicationAccessDTO.getPublicAccess()) {
|
// No change. Return the application as is.
|
||||||
// No change. The required public access is the same as current public access. Do nothing
|
|
||||||
return Mono.just(application);
|
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
|
// Now update the policies to change the access to the application
|
||||||
return generateAndSetPoliciesForView(application, publicPermissionGroupId,
|
return generateAndSetPoliciesForView(
|
||||||
applicationAccessDTO.getPublicAccess());
|
application,
|
||||||
|
publicPermissionGroupId,
|
||||||
|
applicationAccessDTO.getPublicAccess()
|
||||||
|
);
|
||||||
})
|
})
|
||||||
.flatMap(this::setTransientFields);
|
.flatMap(this::setTransientFields);
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user