diff options
Diffstat (limited to 'lib/constraints/group_url_constrainer.rb')
-rw-r--r-- | lib/constraints/group_url_constrainer.rb | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/lib/constraints/group_url_constrainer.rb b/lib/constraints/group_url_constrainer.rb index ca39b1961ae..bae4db1ca4d 100644 --- a/lib/constraints/group_url_constrainer.rb +++ b/lib/constraints/group_url_constrainer.rb @@ -1,7 +1,17 @@ -require 'constraints/namespace_url_constrainer' +class GroupUrlConstrainer + def matches?(request) + id = request.params[:id] -class GroupUrlConstrainer < NamespaceUrlConstrainer - def find_resource(id) - Group.find_by_path(id) + return false unless valid?(id) + + Group.find_by_full_path(id).present? + end + + private + + def valid?(id) + id.split('/').all? do |namespace| + NamespaceValidator.valid?(namespace) + end end end |