Inline Gitlab::Blacklist in NamespaceValidator
This commit is contained in:
parent
175f482c3c
commit
2379c8beea
|
@ -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
|
||||
|
|
|
@ -1,34 +0,0 @@
|
|||
module Gitlab
|
||||
module Blacklist
|
||||
extend self
|
||||
|
||||
def path
|
||||
%w(
|
||||
admin
|
||||
dashboard
|
||||
files
|
||||
groups
|
||||
help
|
||||
profile
|
||||
projects
|
||||
search
|
||||
public
|
||||
assets
|
||||
u
|
||||
s
|
||||
teams
|
||||
merge_requests
|
||||
issues
|
||||
users
|
||||
snippets
|
||||
services
|
||||
repository
|
||||
hooks
|
||||
notes
|
||||
unsubscribes
|
||||
all
|
||||
ci
|
||||
)
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Reference in New Issue