summaryrefslogtreecommitdiff
path: root/lib/api/helpers.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/api/helpers.rb')
-rw-r--r--lib/api/helpers.rb17
1 files changed, 17 insertions, 0 deletions
diff --git a/lib/api/helpers.rb b/lib/api/helpers.rb
index f76b039..13719b4 100644
--- a/lib/api/helpers.rb
+++ b/lib/api/helpers.rb
@@ -1,5 +1,22 @@
module API
module Helpers
+ PRIVATE_TOKEN_PARAM = :private_token
+ PRIVATE_TOKEN_HEADER = "HTTP_PRIVATE_TOKEN"
+
+ def current_user
+ @current_user ||= begin
+ options = {
+ :private_token => (params[PRIVATE_TOKEN_PARAM] || env[PRIVATE_TOKEN_HEADER]),
+ :url => params[:url]
+ }
+ UserSession.new.authenticate_by_token(options)
+ end
+ end
+
+ def authenticate!
+ forbidden! unless current_user
+ end
+
def authenticate_runners!
forbidden! unless params[:token] == GitlabCi::RunnersToken
end