diff options
Diffstat (limited to 'lib/api/helpers.rb')
-rw-r--r-- | lib/api/helpers.rb | 17 |
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 |