From d7a970e7d57fe556c2c82c44e66037439bb1184c Mon Sep 17 00:00:00 2001 From: yystopf Date: Mon, 11 Jul 2022 18:50:13 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D:=20oauth2=20=E9=AA=8C?= =?UTF-8?q?=E8=AF=81=E7=BB=9F=E4=B8=80=E6=94=B9=E4=B8=BAapplication?= =?UTF-8?q?=E6=8E=A7=E5=88=B6=E5=99=A8=E9=87=8C=E7=9A=84user=5Fsetup?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/api/v1/base_controller.rb | 26 ++++++++++++----------- config/initializers/doorkeeper.rb | 3 ++- 2 files changed, 16 insertions(+), 13 deletions(-) diff --git a/app/controllers/api/v1/base_controller.rb b/app/controllers/api/v1/base_controller.rb index 022f17ca7..d97123f45 100644 --- a/app/controllers/api/v1/base_controller.rb +++ b/app/controllers/api/v1/base_controller.rb @@ -3,20 +3,22 @@ class Api::V1::BaseController < ApplicationController include Api::ProjectHelper include Api::UserHelper - before_action :doorkeeper_authorize! - skip_before_action :user_setup + # before_action :doorkeeper_authorize! + # skip_before_action :user_setup protected - def current_user - #client方法对接,需要一直带着用户标识uid - if doorkeeper_token && doorkeeper_token.resource_owner_id.blank? - return User.anonymous if params[:uid].nil? - # tip_exception('缺少用户标识!') if params[:uid].nil? - User.current = User.find(params[:uid]) - else - User.find(doorkeeper_token.resource_owner_id) if doorkeeper_token - end - end + # def current_user + # #client方法对接,需要一直带着用户标识uid + # Rails.logger.info doorkeeper_token + # if doorkeeper_token && doorkeeper_token.resource_owner_id.blank? + # # return User.anonymous if params[:uid].nil? + # # tip_exception("2222") + # # return render_error('缺少用户标识!') if params[:uid].nil? + # User.current = User.find(params[:uid]) + # else + # User.find(doorkeeper_token.resource_owner_id) if doorkeeper_token + # end + # end def require_manager_above @project = load_project diff --git a/config/initializers/doorkeeper.rb b/config/initializers/doorkeeper.rb index dc10c24f2..b11b32dea 100644 --- a/config/initializers/doorkeeper.rb +++ b/config/initializers/doorkeeper.rb @@ -1,6 +1,7 @@ # frozen_string_literal: true Doorkeeper.configure do + base_controller 'ApplicationController' # Change the ORM that doorkeeper will use (requires ORM extensions installed). # Check the list of supported ORMs here: https://github.com/doorkeeper-gem/doorkeeper#orms orm :active_record @@ -20,7 +21,7 @@ Doorkeeper.configure do access_token_generator '::Doorkeeper::JWT' admin_authenticator do - user = User.find_by_id(session[:www_user_id]) + user = current_user unless user && user.admin_or_business? redirect_to root_url end