Commit 2dac058d authored by Robert Speicher's avatar Robert Speicher

Merge branch 'remove-ee-specific-lines-from-plan-concerns' into 'master'

Remove EE-specific lines from Plan concerns

See merge request gitlab-org/gitlab-ce!21448
parents 73ecfae9 22d8f934
...@@ -61,7 +61,7 @@ module Mentionable ...@@ -61,7 +61,7 @@ module Mentionable
cache_key: [self, attr], cache_key: [self, attr],
author: author, author: author,
skip_project_check: skip_project_check? skip_project_check: skip_project_check?
) ).merge(mentionable_params)
extractor.analyze(text, options) extractor.analyze(text, options)
end end
...@@ -86,12 +86,11 @@ module Mentionable ...@@ -86,12 +86,11 @@ module Mentionable
return [] unless matches_cross_reference_regex? return [] unless matches_cross_reference_regex?
refs = all_references(current_user) refs = all_references(current_user)
refs = (refs.issues + refs.merge_requests + refs.commits)
# We're using this method instead of Array diffing because that requires # We're using this method instead of Array diffing because that requires
# both of the object's `hash` values to be the same, which may not be the # both of the object's `hash` values to be the same, which may not be the
# case for otherwise identical Commit objects. # case for otherwise identical Commit objects.
refs.reject { |ref| ref == local_reference } extracted_mentionables(refs).reject { |ref| ref == local_reference }
end end
# Uses regex to quickly determine if mentionables might be referenced # Uses regex to quickly determine if mentionables might be referenced
...@@ -134,6 +133,10 @@ module Mentionable ...@@ -134,6 +133,10 @@ module Mentionable
private private
def extracted_mentionables(refs)
refs.issues + refs.merge_requests + refs.commits
end
# Returns a Hash of changed mentionable fields # Returns a Hash of changed mentionable fields
# #
# Preference is given to the `changes` Hash, but falls back to # Preference is given to the `changes` Hash, but falls back to
...@@ -161,4 +164,8 @@ module Mentionable ...@@ -161,4 +164,8 @@ module Mentionable
def skip_project_check? def skip_project_check?
false false
end end
def mentionable_params
{}
end
end end
...@@ -5,13 +5,19 @@ module Mentionable ...@@ -5,13 +5,19 @@ module Mentionable
def self.reference_pattern(link_patterns, issue_pattern) def self.reference_pattern(link_patterns, issue_pattern)
Regexp.union(link_patterns, Regexp.union(link_patterns,
issue_pattern, issue_pattern,
*other_patterns)
end
def self.other_patterns
[
Commit.reference_pattern, Commit.reference_pattern,
MergeRequest.reference_pattern) MergeRequest.reference_pattern
]
end end
DEFAULT_PATTERN = begin DEFAULT_PATTERN = begin
issue_pattern = Issue.reference_pattern issue_pattern = Issue.reference_pattern
link_patterns = Regexp.union([Issue, Commit, MergeRequest].map(&:link_reference_pattern)) link_patterns = Regexp.union([Issue, Commit, MergeRequest, Epic].map(&:link_reference_pattern).compact)
reference_pattern(link_patterns, issue_pattern) reference_pattern(link_patterns, issue_pattern)
end end
......
...@@ -3,18 +3,22 @@ ...@@ -3,18 +3,22 @@
module ProtectedRefAccess module ProtectedRefAccess
extend ActiveSupport::Concern extend ActiveSupport::Concern
ALLOWED_ACCESS_LEVELS = [
Gitlab::Access::MAINTAINER,
Gitlab::Access::DEVELOPER,
Gitlab::Access::NO_ACCESS
].freeze
HUMAN_ACCESS_LEVELS = { HUMAN_ACCESS_LEVELS = {
Gitlab::Access::MAINTAINER => "Maintainers".freeze, Gitlab::Access::MAINTAINER => "Maintainers".freeze,
Gitlab::Access::DEVELOPER => "Developers + Maintainers".freeze, Gitlab::Access::DEVELOPER => "Developers + Maintainers".freeze,
Gitlab::Access::NO_ACCESS => "No one".freeze Gitlab::Access::NO_ACCESS => "No one".freeze
}.freeze }.freeze
class_methods do
def allowed_access_levels
[
Gitlab::Access::MAINTAINER,
Gitlab::Access::DEVELOPER,
Gitlab::Access::NO_ACCESS
]
end
end
included do included do
scope :master, -> { maintainer } # @deprecated scope :master, -> { maintainer } # @deprecated
scope :maintainer, -> { where(access_level: Gitlab::Access::MAINTAINER) } scope :maintainer, -> { where(access_level: Gitlab::Access::MAINTAINER) }
...@@ -26,7 +30,7 @@ module ProtectedRefAccess ...@@ -26,7 +30,7 @@ module ProtectedRefAccess
scope :for_group, -> { where.not(group_id: nil) } scope :for_group, -> { where.not(group_id: nil) }
validates :access_level, presence: true, if: :role?, inclusion: { validates :access_level, presence: true, if: :role?, inclusion: {
in: ALLOWED_ACCESS_LEVELS in: self.allowed_access_levels
} }
end end
......
...@@ -3,6 +3,10 @@ ...@@ -3,6 +3,10 @@
# Placeholder class for model that is implemented in EE # Placeholder class for model that is implemented in EE
# It reserves '&' as a reference prefix, but the table does not exists in CE # It reserves '&' as a reference prefix, but the table does not exists in CE
class Epic < ActiveRecord::Base class Epic < ActiveRecord::Base
def self.link_reference_pattern
nil
end
def self.reference_prefix def self.reference_prefix
'&' '&'
end end
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
**Valid access levels** **Valid access levels**
The access levels are defined in the `ProtectedRefAccess::ALLOWED_ACCESS_LEVELS` constant. Currently, these levels are recognized: The access levels are defined in the `ProtectedRefAccess.allowed_access_levels` method. Currently, these levels are recognized:
``` ```
0 => No access 0 => No access
30 => Developer access 30 => Developer access
......
...@@ -44,10 +44,10 @@ module API ...@@ -44,10 +44,10 @@ module API
params do params do
requires :name, type: String, desc: 'The name of the protected branch' requires :name, type: String, desc: 'The name of the protected branch'
optional :push_access_level, type: Integer, optional :push_access_level, type: Integer,
values: ProtectedRefAccess::ALLOWED_ACCESS_LEVELS, values: ProtectedBranch::PushAccessLevel.allowed_access_levels,
desc: 'Access levels allowed to push (defaults: `40`, maintainer access level)' desc: 'Access levels allowed to push (defaults: `40`, maintainer access level)'
optional :merge_access_level, type: Integer, optional :merge_access_level, type: Integer,
values: ProtectedRefAccess::ALLOWED_ACCESS_LEVELS, values: ProtectedBranch::MergeAccessLevel.allowed_access_levels,
desc: 'Access levels allowed to merge (defaults: `40`, maintainer access level)' desc: 'Access levels allowed to merge (defaults: `40`, maintainer access level)'
end end
# rubocop: disable CodeReuse/ActiveRecord # rubocop: disable CodeReuse/ActiveRecord
......
...@@ -47,7 +47,7 @@ module API ...@@ -47,7 +47,7 @@ module API
params do params do
requires :name, type: String, desc: 'The name of the protected tag' requires :name, type: String, desc: 'The name of the protected tag'
optional :create_access_level, type: Integer, default: Gitlab::Access::MAINTAINER, optional :create_access_level, type: Integer, default: Gitlab::Access::MAINTAINER,
values: ProtectedRefAccess::ALLOWED_ACCESS_LEVELS, values: ProtectedTag::CreateAccessLevel.allowed_access_levels,
desc: 'Access levels allowed to create (defaults: `40`, maintainer access level)' desc: 'Access levels allowed to create (defaults: `40`, maintainer access level)'
end end
post ':id/protected_tags' do post ':id/protected_tags' do
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment