Skip to content
Snippets Groups Projects
Commit 96106287 authored by James Edwards-Jones's avatar James Edwards-Jones
Browse files

Deduplicate protected ref human_access_levels

Previously these were duplicated so they could be different for push/merge,
but this was no longer necessary after
https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/11232
parent d6dd9d71
No related branches found
No related tags found
No related merge requests found
Loading
Loading
@@ -21,14 +21,14 @@ module Projects
 
def access_levels_options
{
create_access_levels: levels_for_dropdown(ProtectedTag::CreateAccessLevel),
push_access_levels: levels_for_dropdown(ProtectedBranch::PushAccessLevel),
merge_access_levels: levels_for_dropdown(ProtectedBranch::MergeAccessLevel)
create_access_levels: levels_for_dropdown,
push_access_levels: levels_for_dropdown,
merge_access_levels: levels_for_dropdown
}
end
 
def levels_for_dropdown(access_level_type)
roles = access_level_type.human_access_levels.map do |id, text|
def levels_for_dropdown
roles = ProtectedRefAccess::HUMAN_ACCESS_LEVELS.map do |id, text|
{ id: id, text: text, before_divider: true }
end
{ roles: roles }
Loading
Loading
Loading
Loading
@@ -8,14 +8,6 @@ module ProtectedBranchAccess
 
delegate :project, to: :protected_branch
 
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
 
Loading
Loading
Loading
Loading
@@ -7,6 +7,12 @@ module ProtectedRefAccess
Gitlab::Access::NO_ACCESS
].freeze
 
HUMAN_ACCESS_LEVELS = {
Gitlab::Access::MASTER => "Masters".freeze,
Gitlab::Access::DEVELOPER => "Developers + Masters".freeze,
Gitlab::Access::NO_ACCESS => "No one".freeze
}.freeze
included do
scope :master, -> { where(access_level: Gitlab::Access::MASTER) }
scope :developer, -> { where(access_level: Gitlab::Access::DEVELOPER) }
Loading
Loading
@@ -17,7 +23,7 @@ module ProtectedRefAccess
end
 
def humanize
self.class.human_access_levels[self.access_level]
HUMAN_ACCESS_LEVELS[self.access_level]
end
 
# CE access levels are always role-based,
Loading
Loading
class ProtectedTag::CreateAccessLevel < ActiveRecord::Base
include ProtectedTagAccess
 
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
 
Loading
Loading
RSpec.shared_examples "protected tags > access control > CE" do
ProtectedTag::CreateAccessLevel.human_access_levels.each do |(access_type_id, access_type_name)|
ProtectedRefAccess::HUMAN_ACCESS_LEVELS.each do |(access_type_id, access_type_name)|
it "allows creating protected tags that #{access_type_name} can create" do
visit project_protected_tags_path(project)
 
Loading
Loading
shared_examples "protected branches > access control > CE" do
ProtectedBranch::PushAccessLevel.human_access_levels.each do |(access_type_id, access_type_name)|
ProtectedRefAccess::HUMAN_ACCESS_LEVELS.each do |(access_type_id, access_type_name)|
it "allows creating protected branches that #{access_type_name} can push to" do
visit project_protected_branches_path(project)
 
Loading
Loading
@@ -44,7 +44,7 @@ shared_examples "protected branches > access control > CE" do
end
end
 
ProtectedBranch::MergeAccessLevel.human_access_levels.each do |(access_type_id, access_type_name)|
ProtectedRefAccess::HUMAN_ACCESS_LEVELS.each do |(access_type_id, access_type_name)|
it "allows creating protected branches that #{access_type_name} can merge to" do
visit project_protected_branches_path(project)
 
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment