gitlab-org--gitlab-foss/app/models/concerns/protected_branch_access.rb

36 lines
772 B
Ruby
Raw Normal View History

module ProtectedBranchAccess
extend ActiveSupport::Concern
2017-08-02 10:16:17 +00:00
ALLOWED_ACCESS_LEVELS ||= [
Gitlab::Access::MASTER,
Gitlab::Access::DEVELOPER,
Gitlab::Access::NO_ACCESS
].freeze
included do
include ProtectedRefAccess
belongs_to :protected_branch
delegate :project, to: :protected_branch
2017-05-12 10:41:39 +00:00
validates :access_level, presence: true, inclusion: {
2017-08-02 10:16:17 +00:00
in: ALLOWED_ACCESS_LEVELS
2017-05-12 10:41:39 +00:00
}
def self.human_access_levels
{
Gitlab::Access::MASTER => "Masters",
Gitlab::Access::DEVELOPER => "Developers + Masters",
Gitlab::Access::NO_ACCESS => "No one"
}.with_indifferent_access
end
def check_access(user)
return false if access_level == Gitlab::Access::NO_ACCESS
super
end
end
end