summaryrefslogtreecommitdiff
path: root/lib/api/helpers.rb
diff options
context:
space:
mode:
authorAngelo Lakra <alakra@comverge.com>2013-09-23 20:58:16 -0600
committerAngelo Lakra <angelo.lakra@gmail.com>2013-10-08 00:43:14 -0600
commit0984328946aea015402b2254e2d0643def9235ce (patch)
tree89c3be4648d8c7f2e645d0ba7fcee78837e4f7c1 /lib/api/helpers.rb
parent96fe0415f3968f3766ccd778c17a4cf2abf7782c (diff)
downloadgitlab-ci-0984328946aea015402b2254e2d0643def9235ce.tar.gz
Implementing method for authentication via token
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