提交 896b13b9 编写于 作者: G Grzegorz Bizon

Refactor splitting container image full path

[ci skip]
上级 95e2c019
class ContainerImage < ActiveRecord::Base
include Routable
belongs_to :project
delegate :container_registry, to: :project
......@@ -45,14 +43,13 @@ class ContainerImage < ActiveRecord::Base
end
end
# rubocop:disable RedundantReturn
def self.from_path(full_path)
return unless full_path.include?('/')
def self.split_namespace(full_path)
image_name = full_path.split('/').last
namespace = full_path.gsub(/(.*)(#{Regexp.escape('/' + image_name)})/, '\1')
if namespace.count('/') < 1
namespace, image_name = full_path, ""
end
return namespace, image_name
path = full_path[0...full_path.rindex('/')]
name = full_path[full_path.rindex('/')+1..-1]
project = Project.find_by_full_path(path)
self.new(name: name, path: path, project: project)
end
end
......@@ -62,12 +62,7 @@ module Auth
end
def process_repository_access(type, name, actions)
# Strips image name due to lack of
# per image authentication.
# Removes only last occurence in light
# of future nested groups
namespace, a = ContainerImage::split_namespace(name)
requested_project = Project.find_by_full_path(namespace)
requested_project = ContainerImage.from_path(name).project
return unless requested_project
actions = actions.select do |action|
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册