diff options
author | Kamil Trzcinski <ayufan@ayufan.eu> | 2015-08-04 19:54:45 +0200 |
---|---|---|
committer | Kamil Trzcinski <ayufan@ayufan.eu> | 2015-08-04 20:12:08 +0200 |
commit | 9803f7489d612340019b3653b0cc0618a30a73f3 (patch) | |
tree | b604f42241cfb2d6d692d63035aad7080f181a9e | |
parent | f7dbf6d1a4b5724445de4da658103ce976b02a29 (diff) | |
download | gitlab-ci-9803f7489d612340019b3653b0cc0618a30a73f3.tar.gz |
Refactor GitLab API usage to use either access_token or private_token
-rw-r--r-- | app/controllers/projects_controller.rb | 2 | ||||
-rw-r--r-- | app/models/network.rb | 10 | ||||
-rw-r--r-- | app/models/project.rb | 7 | ||||
-rw-r--r-- | app/models/user.rb | 20 | ||||
-rw-r--r-- | app/services/create_project_service.rb | 8 |
5 files changed, 20 insertions, 27 deletions
diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb index f228870..8ba0f92 100644 --- a/app/controllers/projects_controller.rb +++ b/app/controllers/projects_controller.rb @@ -79,7 +79,7 @@ class ProjectsController < ApplicationController def destroy project.destroy - Network.new.disable_ci(project.gitlab_id, current_user.access_token) + Network.new.disable_ci(project.gitlab_id, current_user.authenticate_options) EventService.new.remove_project(current_user, project) diff --git a/app/models/network.rb b/app/models/network.rb index 8ba467d..85c3143 100644 --- a/app/models/network.rb +++ b/app/models/network.rb @@ -82,11 +82,15 @@ class Network end end - def disable_ci(project_id, access_token) - query = "projects/#{project_id}/services/gitlab-ci.json?access_token=#{access_token}" + def disable_ci(project_id, api_opts) + opts = { + query: api_opts + } + + query = "projects/#{project_id}/services/gitlab-ci.json?#{options.to_query}" endpoint = File.join(url, API_PREFIX, query) - response = self.class.delete(endpoint, default_opts) + response = self.class.delete(endpoint, default_opts.merge(opts)) build_response(response) end diff --git a/app/models/project.rb b/app/models/project.rb index b4a3ffc..373fe84 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -87,12 +87,7 @@ ls -la end def from_gitlab(user, scope = :owned, options) - opts = if user.access_token - { access_token: user.access_token } - else - { private_token: user.private_token } - end - + opts = user.authenticate_options opts.merge! options projects = Network.new.projects(opts.compact, scope) diff --git a/app/models/user.rb b/app/models/user.rb index dc4c2cf..2dd80dd 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -60,12 +60,8 @@ class User end def can_manage_project?(project_gitlab_id) - opts = { - access_token: self.access_token, - } - Rails.cache.fetch(cache_key('manage', project_gitlab_id, sync_at)) do - !!Network.new.project_hooks(opts, project_gitlab_id) + !!Network.new.project_hooks(authenticate_options, project_gitlab_id) end end @@ -81,15 +77,19 @@ class User end end + def authenticate_options + if attributes['access_token'] + { access_token: attributes['access_token'] } + else + { private_token: attributes['private_token'] } + end + end + private def project_info(project_gitlab_id) - opts = { - access_token: self.access_token, - } - Rails.cache.fetch(cache_key("project_info", project_gitlab_id, sync_at)) do - Network.new.project(opts, project_gitlab_id) + Network.new.project(authenticate_options, project_gitlab_id) end end end diff --git a/app/services/create_project_service.rb b/app/services/create_project_service.rb index 652d7bd..f331919 100644 --- a/app/services/create_project_service.rb +++ b/app/services/create_project_service.rb @@ -12,13 +12,7 @@ class CreateProjectService project_url: project_route.gsub(":project_id", @project.id.to_s), } - auth_opts = if current_user.access_token - { access_token: current_user.access_token } - else - { private_token: current_user.private_token } - end - - unless Network.new.enable_ci(@project.gitlab_id, data, auth_opts) + unless Network.new.enable_ci(@project.gitlab_id, data, current_user.authenticate_options) raise ActiveRecord::Rollback end end |