|
|
|
@ -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!
|
|
|
|
|