]> git.openstreetmap.org Git - rails.git/blob - app/controllers/api_controller.rb
ebc75ac3919fbacc98fe1ff29960bbc56601566e
[rails.git] / app / controllers / api_controller.rb
1 class ApiController < ApplicationController
2   skip_before_action :verify_authenticity_token
3
4   private
5
6   def authorize(realm = "Web Password", errormessage = "Couldn't authenticate you")
7     # make the current_user object from any auth sources we have
8     setup_user_auth
9
10     # handle authenticate pass/fail
11     unless current_user
12       # no auth, the user does not exist or the password was wrong
13       response.headers["WWW-Authenticate"] = "Basic realm=\"#{realm}\""
14       render :plain => errormessage, :status => :unauthorized
15       return false
16     end
17   end
18
19   def deny_access(_exception)
20     if current_token
21       set_locale
22       report_error t("oauth.permissions.missing"), :forbidden
23     elsif current_user
24       head :forbidden
25     else
26       realm = "Web Password"
27       errormessage = "Couldn't authenticate you"
28       response.headers["WWW-Authenticate"] = "Basic realm=\"#{realm}\""
29       render :plain => errormessage, :status => :unauthorized
30     end
31   end
32 end