Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app/validators')
-rw-r--r--app/validators/namespace_validator.rb36
1 files changed, 32 insertions, 4 deletions
diff --git a/app/validators/namespace_validator.rb b/app/validators/namespace_validator.rb
index 4ab1706abda..10e35ce665a 100644
--- a/app/validators/namespace_validator.rb
+++ b/app/validators/namespace_validator.rb
@@ -2,21 +2,49 @@
#
# Custom validator for GitLab namespace values.
#
-# Values are checked for formatting and exclusion from `Gitlab::Blacklist.path`.
+# Values are checked for formatting and exclusion from a list of reserved path
+# names.
class NamespaceValidator < ActiveModel::EachValidator
+ RESERVED = %w(
+ admin
+ all
+ assets
+ ci
+ dashboard
+ files
+ groups
+ help
+ hooks
+ issues
+ merge_requests
+ notes
+ profile
+ projects
+ public
+ repository
+ s
+ search
+ services
+ snippets
+ teams
+ u
+ unsubscribes
+ users
+ ).freeze
+
def validate_each(record, attribute, value)
unless value =~ Gitlab::Regex.namespace_regex
record.errors.add(attribute, Gitlab::Regex.namespace_regex_message)
end
- if blacklisted?(value)
+ if reserved?(value)
record.errors.add(attribute, "#{value} is a reserved name")
end
end
private
- def blacklisted?(value)
- Gitlab::Blacklist.path.include?(value)
+ def reserved?(value)
+ RESERVED.include?(value)
end
end