Skip to content

Commit fa25fc3

Browse files
authored
Add suspended state for spaces and deleting state for spaces and orgs (#5206)
1 parent 51362aa commit fa25fc3

91 files changed

Lines changed: 1323 additions & 283 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

app/access/private_domain_access.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ def read_for_update?(private_domain, _params=nil)
6666

6767
def update?(private_domain, _params=nil)
6868
return true if admin_user?
69-
return false if private_domain.in_suspended_org?
69+
return false if private_domain.in_suspended_or_deleting_org?
7070

7171
private_domain.owning_organization.managers.include?(context.user)
7272
end

app/access/process_model_access.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ def index_with_token?(_)
5454

5555
def create?(app, _params=nil)
5656
return true if admin_user?
57-
return false if app.in_suspended_org?
57+
return false if app.in_suspended_or_deleting_org? || app.in_suspended_or_deleting_space?
5858

5959
app.space&.has_developer?(context.user)
6060
end

app/access/route_access.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ def index_with_token?(_)
7676

7777
def can_write_to_route(route, is_create=false)
7878
return true if context.queryer.can_write_globally?
79-
return false if route.in_suspended_org?
79+
return false if route.in_suspended_or_deleting_org? || route.in_suspended_or_deleting_space?
8080
return false if route.wildcard_host? && route.domain.shared?
8181

8282
FeatureFlag.raise_unless_enabled!(:route_creation) if is_create

app/access/route_mapping_access.rb

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,9 +54,11 @@ def index_with_token?(_)
5454

5555
def create?(route_mapping, _params=nil)
5656
return true if admin_user?
57-
return false if route_mapping.route.in_suspended_org?
5857

59-
route_mapping.route.space.has_developer?(context.user)
58+
space = route_mapping.route.space
59+
return false if space.in_suspended_or_deleting_org? || space.in_suspended_or_deleting_space?
60+
61+
space.has_developer?(context.user)
6062
end
6163

6264
def read_for_update?(route_mapping, _params=nil)

app/access/service_instance_access.rb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -56,14 +56,14 @@ def create?(service_instance, _params=nil)
5656
return true if admin_user?
5757

5858
FeatureFlag.raise_unless_enabled!(:service_instance_creation)
59-
return false if service_instance.in_suspended_org?
59+
return false if service_instance.in_suspended_or_deleting_org? || service_instance.in_suspended_or_deleting_space?
6060

6161
service_instance.space&.has_developer?(context.user) && allowed?(service_instance)
6262
end
6363

6464
def read_for_update?(service_instance, _params=nil)
6565
return true if admin_user?
66-
return false if service_instance.in_suspended_org?
66+
return false if service_instance.in_suspended_or_deleting_org? || service_instance.in_suspended_or_deleting_space?
6767

6868
service_instance.space&.has_developer?(context.user)
6969
end
@@ -74,7 +74,7 @@ def update?(service_instance, params=nil)
7474

7575
def delete?(service_instance)
7676
return true if admin_user?
77-
return false if service_instance.in_suspended_org?
77+
return false if service_instance.in_suspended_or_deleting_org? || service_instance.in_suspended_or_deleting_space?
7878

7979
service_instance.space&.has_developer?(context.user)
8080
end

app/access/service_key_access.rb

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,9 +52,11 @@ def index_with_token?(_)
5252

5353
def create?(service_key, _params=nil)
5454
return true if admin_user?
55-
return false if service_key.in_suspended_org?
5655

57-
service_key.service_instance.space.has_developer?(context.user)
56+
space = service_key.service_instance.space
57+
return false if space.in_suspended_or_deleting_org? || space.in_suspended_or_deleting_space?
58+
59+
space.has_developer?(context.user)
5860
end
5961

6062
def delete?(service_key)

app/access/space_access.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ def read_related_object_for_update?(space, params=nil)
4444

4545
def create?(space, _params=nil)
4646
return true if context.queryer.can_write_globally?
47-
return false if space.in_suspended_org?
47+
return false if space.in_suspended_or_deleting_org? || space.in_suspended_or_deleting_space?
4848

4949
context.queryer.can_write_to_active_org?(space.organization_id)
5050
end
@@ -57,7 +57,7 @@ def can_remove_related_object?(space, params)
5757

5858
def read_for_update?(space, _params=nil)
5959
return true if context.queryer.can_write_globally?
60-
return false if space.in_suspended_org?
60+
return false if space.in_suspended_or_deleting_org? || space.in_suspended_or_deleting_space?
6161

6262
context.queryer.can_write_to_active_org?(space.organization_id) || context.queryer.can_update_active_space?(space.id, space.organization_id)
6363
end

app/access/space_quota_definition_access.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ def index_with_token?(_)
4848

4949
def create?(space_quota_definition, _params=nil)
5050
return true if admin_user?
51-
return false if space_quota_definition.organization.suspended?
51+
return false if space_quota_definition.organization.suspended_or_deleting?
5252

5353
space_quota_definition.organization.managers.include?(context.user)
5454
end

app/actions/organization_update.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ def update(org, message)
1515
AnnotationsUpdate.update(org, message.annotations, OrganizationAnnotationModel)
1616

1717
if message.requested?(:suspended)
18+
error!("Organization '#{org.name}' is being deleted and cannot be updated.") if org.deleting?
1819
org.status = message.suspended ? Organization::SUSPENDED : Organization::ACTIVE
1920
end
2021

app/actions/space_create.rb

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,11 @@ def initialize(user_audit_info:)
1010
def create(org, message)
1111
space = nil
1212
Space.db.transaction do
13-
space = VCAP::CloudController::Space.create(name: message.name, organization: org)
13+
space = VCAP::CloudController::Space.create(
14+
name: message.name,
15+
organization: org,
16+
status: message.suspended ? Space::SUSPENDED : Space::ACTIVE
17+
)
1418
MetadataUpdate.update(space, message)
1519
Repositories::SpaceEventRepository.new.record_space_create(space, user_audit_info, message.audit_hash)
1620
end

0 commit comments

Comments
 (0)