summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorValery Sizov <vsv2711@gmail.com>2015-09-14 18:14:17 +0300
committerValery Sizov <vsv2711@gmail.com>2015-09-14 18:14:17 +0300
commit910bf96ec3d60194b2fe4444c1df24f141b8450b (patch)
tree98826617854d4e7f9c2a16e08348e3fcf3a8895f /lib
parenta399fe32e88d9b151426d43325e659df688b2019 (diff)
downloadgitlab-ce-910bf96ec3d60194b2fe4444c1df24f141b8450b.tar.gz
fix specs. Stage 2
Diffstat (limited to 'lib')
-rw-r--r--lib/api/helpers.rb5
-rw-r--r--lib/ci/api/api.rb2
-rw-r--r--lib/ci/api/helpers.rb89
3 files changed, 8 insertions, 88 deletions
diff --git a/lib/api/helpers.rb b/lib/api/helpers.rb
index 76c9cc2e3a4..ef0f897a2fb 100644
--- a/lib/api/helpers.rb
+++ b/lib/api/helpers.rb
@@ -148,15 +148,14 @@ module API
end
end
- def attributes_for_keys(keys)
+ def attributes_for_keys(keys, custom_params = nil)
+ params_hash = custom_params || params
attrs = {}
-
keys.each do |key|
if params[key].present? or (params.has_key?(key) and params[key] == false)
attrs[key] = params[key]
end
end
-
ActionController::Parameters.new(attrs).permit!
end
diff --git a/lib/ci/api/api.rb b/lib/ci/api/api.rb
index 392fb548001..172c6f22164 100644
--- a/lib/ci/api/api.rb
+++ b/lib/ci/api/api.rb
@@ -3,6 +3,7 @@ Dir["#{Rails.root}/lib/ci/api/*.rb"].each {|file| require file}
module Ci
module API
class API < Grape::API
+ include APIGuard
version 'v1', using: :path
rescue_from ActiveRecord::RecordNotFound do
@@ -25,6 +26,7 @@ module Ci
format :json
helpers Helpers
+ helpers ::API::APIHelpers
mount Builds
mount Commits
diff --git a/lib/ci/api/helpers.rb b/lib/ci/api/helpers.rb
index 3f58670fb49..9197f917d73 100644
--- a/lib/ci/api/helpers.rb
+++ b/lib/ci/api/helpers.rb
@@ -1,30 +1,6 @@
module Ci
module API
module Helpers
- PRIVATE_TOKEN_PARAM = :private_token
- PRIVATE_TOKEN_HEADER = "HTTP_PRIVATE_TOKEN"
- ACCESS_TOKEN_PARAM = :access_token
- ACCESS_TOKEN_HEADER = "HTTP_ACCESS_TOKEN"
- UPDATE_RUNNER_EVERY = 60
-
- def current_user
- @current_user ||= begin
- options = {
- access_token: (params[ACCESS_TOKEN_PARAM] || env[ACCESS_TOKEN_HEADER]),
- private_token: (params[PRIVATE_TOKEN_PARAM] || env[PRIVATE_TOKEN_HEADER]),
- }
- Ci::UserSession.new.authenticate(options.compact)
- end
- end
-
- def current_runner
- @runner ||= Ci::Runner.find_by_token(params[:token].to_s)
- end
-
- def authenticate!
- forbidden! unless current_user
- end
-
def authenticate_runners!
forbidden! unless params[:token] == GitlabCi::REGISTRATION_TOKEN
end
@@ -43,72 +19,15 @@ module Ci
end
end
+ def current_runner
+ @runner ||= Runner.find_by_token(params[:token].to_s)
+ end
+
def update_runner_info
return unless params["info"].present?
info = attributes_for_keys(["name", "version", "revision", "platform", "architecture"], params["info"])
current_runner.update(info)
end
-
- # Checks the occurrences of required attributes, each attribute must be present in the params hash
- # or a Bad Request error is invoked.
- #
- # Parameters:
- # keys (required) - A hash consisting of keys that must be present
- def required_attributes!(keys)
- keys.each do |key|
- bad_request!(key) unless params[key].present?
- end
- end
-
- def attributes_for_keys(keys, custom_params = nil)
- params_hash = custom_params || params
- attrs = {}
- keys.each do |key|
- attrs[key] = params_hash[key] if params_hash[key].present?
- end
- attrs
- end
-
- # error helpers
-
- def forbidden!
- render_api_error!('403 Forbidden', 403)
- end
-
- def bad_request!(attribute)
- message = ["400 (Bad request)"]
- message << "\"" + attribute.to_s + "\" not given"
- render_api_error!(message.join(' '), 400)
- end
-
- def not_found!(resource = nil)
- message = ["404"]
- message << resource if resource
- message << "Not Found"
- render_api_error!(message.join(' '), 404)
- end
-
- def unauthorized!
- render_api_error!('401 Unauthorized', 401)
- end
-
- def not_allowed!
- render_api_error!('Method Not Allowed', 405)
- end
-
- def render_api_error!(message, status)
- error!({ 'message' => message }, status)
- end
-
- private
-
- def abilities
- @abilities ||= begin
- abilities = Six.new
- abilities << Ability
- abilities
- end
- end
end
end
end