26 lines
636 B
Ruby
26 lines
636 B
Ruby
# frozen_string_literal: true
|
|
|
|
module Clusters
|
|
module Agents
|
|
module AuthorizationConfigScopes
|
|
extend ActiveSupport::Concern
|
|
|
|
included do
|
|
scope :with_available_ci_access_fields, ->(project) {
|
|
where("config->'access_as' IS NULL")
|
|
.or(where("config->'access_as' = '{}'"))
|
|
.or(where("config->'access_as' ?| array[:fields]", fields: available_ci_access_fields(project)))
|
|
}
|
|
end
|
|
|
|
class_methods do
|
|
def available_ci_access_fields(_project)
|
|
%w(agent)
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
Clusters::Agents::AuthorizationConfigScopes.prepend_mod
|