2019-04-10 02:13:43 +00:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
|
|
|
module Clusters
|
|
|
|
class InstancePolicy < BasePolicy
|
|
|
|
include ClusterableActions
|
|
|
|
|
|
|
|
condition(:has_clusters, scope: :subject) { clusterable_has_clusters? }
|
|
|
|
condition(:can_have_multiple_clusters) { multiple_clusters_available? }
|
|
|
|
|
2019-06-27 12:29:19 +00:00
|
|
|
rule { admin }.policy do
|
2019-04-10 02:13:43 +00:00
|
|
|
enable :read_cluster
|
|
|
|
enable :add_cluster
|
|
|
|
enable :create_cluster
|
|
|
|
enable :update_cluster
|
|
|
|
enable :admin_cluster
|
|
|
|
end
|
|
|
|
|
|
|
|
rule { ~can_have_multiple_clusters & has_clusters }.prevent :add_cluster
|
|
|
|
end
|
|
|
|
end
|