diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/domains/Workspace.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/domains/Workspace.java index b2dad4e744..66d4b05235 100644 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/domains/Workspace.java +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/domains/Workspace.java @@ -4,14 +4,13 @@ import com.appsmith.external.models.BaseDomain; import com.appsmith.external.views.Views; import com.appsmith.server.constants.Url; import com.fasterxml.jackson.annotation.JsonView; - +import jakarta.validation.constraints.NotBlank; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; import lombok.ToString; import org.springframework.data.mongodb.core.mapping.Document; -import jakarta.validation.constraints.NotBlank; import java.util.List; import java.util.Set; @@ -46,7 +45,7 @@ public class Workspace extends BaseDomain { @Deprecated @JsonView(Views.Public.class) private Boolean isAutoGeneratedOrganization; - + @JsonView(Views.Public.class) private Boolean isAutoGeneratedWorkspace; @@ -60,6 +59,9 @@ public class Workspace extends BaseDomain { @JsonView(Views.Public.class) private String tenantId; + @JsonView(Views.Internal.class) + private Boolean hasEnvironments; + @JsonView(Views.Internal.class) private Set defaultPermissionGroups; diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/services/ce/WorkspaceServiceCEImpl.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/services/ce/WorkspaceServiceCEImpl.java index f93c662c76..71d4dcc038 100644 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/services/ce/WorkspaceServiceCEImpl.java +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/services/ce/WorkspaceServiceCEImpl.java @@ -4,7 +4,6 @@ import com.appsmith.external.helpers.AppsmithBeanUtils; import com.appsmith.external.models.Policy; import com.appsmith.server.acl.AclPermission; import com.appsmith.server.acl.AppsmithRole; -import com.appsmith.server.acl.RoleGraph; import com.appsmith.server.constants.Constraint; import com.appsmith.server.constants.FieldName; import com.appsmith.server.domains.Asset; @@ -23,17 +22,16 @@ import com.appsmith.server.helpers.TextUtils; import com.appsmith.server.repositories.ApplicationRepository; import com.appsmith.server.repositories.AssetRepository; import com.appsmith.server.repositories.PluginRepository; -import com.appsmith.server.repositories.UserRepository; import com.appsmith.server.repositories.WorkspaceRepository; import com.appsmith.server.services.AnalyticsService; import com.appsmith.server.services.AssetService; import com.appsmith.server.services.BaseService; import com.appsmith.server.services.PermissionGroupService; import com.appsmith.server.services.SessionUserService; -import com.appsmith.server.services.UserWorkspaceService; import com.appsmith.server.solutions.PermissionGroupPermission; import com.appsmith.server.solutions.WorkspacePermission; import com.mongodb.DBObject; +import jakarta.validation.Validator; import lombok.extern.slf4j.Slf4j; import org.modelmapper.ModelMapper; import org.springframework.beans.factory.annotation.Autowired; @@ -50,8 +48,6 @@ import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; import reactor.core.scheduler.Scheduler; -import jakarta.validation.Validator; - import java.util.Arrays; import java.util.List; import java.util.Map; @@ -175,12 +171,8 @@ public class WorkspaceServiceCEImpl extends BaseService createWorkspaceAllowedMono = isCreateWorkspaceAllowed(isDefault); - if (workspace.getEmail() == null) { - workspace.setEmail(user.getEmail()); - } - - workspace.setSlug(TextUtils.makeSlug(workspace.getName())); - workspace.setTenantId(user.getTenantId()); + // Populate all the required fields for a valid workspace + prepareWorkspaceToCreate(workspace, user); return createWorkspaceAllowedMono .flatMap(isCreateWorkspaceAllowed -> { @@ -213,6 +205,15 @@ public class WorkspaceServiceCEImpl extends BaseService createWorkspaceDependents(Workspace createdWorkspace) { // Nothing to create return Mono.just(createdWorkspace);