From 08196faa1bc62f6781844cddbc59bca7bd5dd052 Mon Sep 17 00:00:00 2001 From: anke1460 Date: Tue, 25 Feb 2020 18:16:32 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8D=95=E7=82=B9=E7=99=BB=E5=BD=95=E5=85=B3?= =?UTF-8?q?=E8=81=94=E8=B4=A6=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/oauth/cas_controller.rb | 2 +- app/services/oauth/create_or_find_cas_user_service.rb | 9 ++++----- config/application.rb | 2 +- 3 files changed, 6 insertions(+), 7 deletions(-) diff --git a/app/controllers/oauth/cas_controller.rb b/app/controllers/oauth/cas_controller.rb index c42e23303..d5abc8cbe 100644 --- a/app/controllers/oauth/cas_controller.rb +++ b/app/controllers/oauth/cas_controller.rb @@ -8,6 +8,6 @@ class Oauth::CasController < Oauth::BaseController def auth_hash - request.env['omniauth.auth'] + JSON.parse(CGI.unescape(request.env['omniauth.auth'].extra.to_json)) end end \ No newline at end of file diff --git a/app/services/oauth/create_or_find_cas_user_service.rb b/app/services/oauth/create_or_find_cas_user_service.rb index c36a23404..0b6715471 100644 --- a/app/services/oauth/create_or_find_cas_user_service.rb +++ b/app/services/oauth/create_or_find_cas_user_service.rb @@ -8,18 +8,17 @@ class Oauth::CreateORFindCasUserService < ApplicationService def call return [@user, false] if @user - open_user = OpenUsers::Cas.find_or_initialize_by(uid: @params.info['email']) do |u| - u.extra = @params.info + open_user = OpenUsers::Cas.find_or_initialize_by(uid: @params['user']) do |u| + u.extra = @params end return [open_user.user, false] if open_user.persisted? - @user = User.new(login: User.generate_login('C'), type: 'User', status: User::STATUS_ACTIVE) + @user = User.new(login: User.generate_login('C'), type: 'User', status: User::STATUS_ACTIVE, nickname: @params['comsys_name'], lastname: @params['comsys_name']) ActiveRecord::Base.transaction do - gender = @params.dig('extra', 'raw_info', 'xb') == '女' ? 1 : 0 @user.save! - @user.create_user_extension!(gender: gender) + @user.create_user_extension! open_user.user = @user open_user.save! diff --git a/config/application.rb b/config/application.rb index db0204d49..31a94e7ed 100644 --- a/config/application.rb +++ b/config/application.rb @@ -30,7 +30,7 @@ module Educoderplus config.active_job.queue_adapter = :sidekiq config.middleware.use OmniAuth::Builder do - provider :cas, url: 'http://localhost:3200' + provider :cas, url: 'https://urp.tfswufe.edu.cn/cas' end config.middleware.insert_before 0, Rack::Cors do