You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
39 lines
897 B
39 lines
897 B
# frozen_string_literal: true |
|
|
|
class Oauth::AuthorizationsController < Doorkeeper::AuthorizationsController |
|
skip_before_action :authenticate_resource_owner! |
|
|
|
before_action :store_current_location |
|
before_action :authenticate_resource_owner! |
|
before_action :set_cache_headers |
|
|
|
content_security_policy do |p| |
|
p.form_action(false) |
|
end |
|
|
|
include Localized |
|
|
|
private |
|
|
|
def store_current_location |
|
store_location_for(:user, request.url) |
|
end |
|
|
|
def render_success |
|
if skip_authorization? || (matching_token? && !truthy_param?('force_login')) |
|
redirect_or_render authorize_response |
|
elsif Doorkeeper.configuration.api_only |
|
render json: pre_auth |
|
else |
|
render :new |
|
end |
|
end |
|
|
|
def truthy_param?(key) |
|
ActiveModel::Type::Boolean.new.cast(params[key]) |
|
end |
|
|
|
def set_cache_headers |
|
response.headers['Cache-Control'] = 'private, no-store' |
|
end |
|
end
|
|
|