fix
This commit is contained in:
parent
c4a43c4392
commit
fba58800a7
|
@ -357,7 +357,10 @@ class ApplicationController < ActionController::Base
|
||||||
uid_logger("user setup start: session[:user_id] is #{session[:user_id]}")
|
uid_logger("user setup start: session[:user_id] is #{session[:user_id]}")
|
||||||
uid_logger("0000000000000user setup start: default_yun_session is #{default_yun_session}, session[:current_user_id] is #{session[:"#{default_yun_session}"]}")
|
uid_logger("0000000000000user setup start: default_yun_session is #{default_yun_session}, session[:current_user_id] is #{session[:"#{default_yun_session}"]}")
|
||||||
current_domain_session = session[:"#{default_yun_session}"]
|
current_domain_session = session[:"#{default_yun_session}"]
|
||||||
|
Rails.logger.info "#{session[:user_id]}==============="
|
||||||
|
|
||||||
if current_domain_session
|
if current_domain_session
|
||||||
|
Rails.logger.info "#{current_domain_session}==============="
|
||||||
# existing session
|
# existing session
|
||||||
User.current = (User.active.find(current_domain_session) rescue nil)
|
User.current = (User.active.find(current_domain_session) rescue nil)
|
||||||
elsif autologin_user = try_to_autologin
|
elsif autologin_user = try_to_autologin
|
||||||
|
|
|
@ -1,14 +1,14 @@
|
||||||
module RegisterHelper
|
module RegisterHelper
|
||||||
extend ActiveSupport::Concern
|
extend ActiveSupport::Concern
|
||||||
|
|
||||||
def autologin_register(username, email, password, platform= 'forge', need_edit_password = false)
|
def autologin_register(username, email, password, platform= 'forge', need_edit_info = false)
|
||||||
result = {message: nil, user: nil}
|
result = {message: nil, user: nil}
|
||||||
|
|
||||||
user = User.new(admin: false, login: username, mail: email, type: "User")
|
user = User.new(admin: false, login: username, mail: email, type: "User")
|
||||||
user.password = password
|
user.password = password
|
||||||
user.platform = platform
|
user.platform = platform
|
||||||
if need_edit_password
|
if need_edit_info
|
||||||
user.need_edit_password
|
user.need_edit_info
|
||||||
else
|
else
|
||||||
user.activate
|
user.activate
|
||||||
end
|
end
|
||||||
|
@ -31,4 +31,30 @@ module RegisterHelper
|
||||||
result
|
result
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def autosync_register_trustie(username, password, email)
|
||||||
|
config = Rails.application.config_for(:configuration).symbolize_keys!
|
||||||
|
|
||||||
|
api_host = config[:sync_url]
|
||||||
|
|
||||||
|
return if api_host.blank?
|
||||||
|
|
||||||
|
url = "#{api_host}/api/v1/users"
|
||||||
|
sync_json = {
|
||||||
|
"mail": email,
|
||||||
|
"password": password,
|
||||||
|
"login": username
|
||||||
|
}
|
||||||
|
uri = URI.parse(url)
|
||||||
|
|
||||||
|
if api_host
|
||||||
|
http = Net::HTTP.new(uri.hostname, uri.port)
|
||||||
|
|
||||||
|
if api_host.include?("https://")
|
||||||
|
http.use_ssl = true
|
||||||
|
end
|
||||||
|
|
||||||
|
http.send_request('POST', uri.path, sync_json.to_json, {'Content-Type' => 'application/json'})
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
|
@ -56,6 +56,7 @@ class Oauth::EducoderController < Oauth::BaseController
|
||||||
reg_result = autologin_register(login,"#{login}@forge.com", "Ec#{login}2021#", 'educoder', true)
|
reg_result = autologin_register(login,"#{login}@forge.com", "Ec#{login}2021#", 'educoder', true)
|
||||||
if reg_result[:message].blank?
|
if reg_result[:message].blank?
|
||||||
open_user = OpenUsers::Educoder.create!(user_id: reg_result[:user][:id], uid: result['login'], extra: result)
|
open_user = OpenUsers::Educoder.create!(user_id: reg_result[:user][:id], uid: result['login'], extra: result)
|
||||||
|
autosync_register_trustie(login, "Ec#{login}2021#", "#{login}@forge.com")
|
||||||
successful_authentication(open_user.user)
|
successful_authentication(open_user.user)
|
||||||
else
|
else
|
||||||
render_error(reg_result[:message])
|
render_error(reg_result[:message])
|
||||||
|
|
|
@ -1,19 +1,19 @@
|
||||||
# == Schema Information
|
# == Schema Information
|
||||||
#
|
#
|
||||||
# Table name: tokens
|
# Table name: tokens
|
||||||
#
|
#
|
||||||
# id :integer not null, primary key
|
# id :integer not null, primary key
|
||||||
# user_id :integer default("0"), not null
|
# user_id :integer default("0"), not null
|
||||||
# action :string(30) default(""), not null
|
# action :string(30) default(""), not null
|
||||||
# value :string(40) default(""), not null
|
# value :string(40) default(""), not null
|
||||||
# created_on :datetime not null
|
# created_on :datetime not null
|
||||||
#
|
#
|
||||||
# Indexes
|
# Indexes
|
||||||
#
|
#
|
||||||
# index_tokens_on_user_id (user_id)
|
# index_tokens_on_user_id (user_id)
|
||||||
# tokens_value (value) UNIQUE
|
# tokens_value (value) UNIQUE
|
||||||
#
|
#
|
||||||
|
|
||||||
#
|
#
|
||||||
# This program is free software; you can redistribute it and/or
|
# This program is free software; you can redistribute it and/or
|
||||||
# modify it under the terms of the GNU General Public License
|
# modify it under the terms of the GNU General Public License
|
||||||
|
@ -76,7 +76,7 @@ class Token < ActiveRecord::Base
|
||||||
# Returns the active user who owns the key for the given action
|
# Returns the active user who owns the key for the given action
|
||||||
def self.find_active_user(action, key, validity_days=nil)
|
def self.find_active_user(action, key, validity_days=nil)
|
||||||
user = find_user(action, key, validity_days)
|
user = find_user(action, key, validity_days)
|
||||||
if user && user.active?
|
if user && (user.active? || user.need_edit_info?)
|
||||||
user
|
user
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -79,7 +79,7 @@ class User < Owner
|
||||||
STATUS_ACTIVE = 1
|
STATUS_ACTIVE = 1
|
||||||
STATUS_REGISTERED = 2
|
STATUS_REGISTERED = 2
|
||||||
STATUS_LOCKED = 3
|
STATUS_LOCKED = 3
|
||||||
STATUS_EDIT_PASSWORD = 4
|
STATUS_EDIT_INFO = 4
|
||||||
|
|
||||||
# tpi tpm权限控制
|
# tpi tpm权限控制
|
||||||
EDU_ADMIN = 1 # 超级管理员
|
EDU_ADMIN = 1 # 超级管理员
|
||||||
|
@ -162,7 +162,7 @@ class User < Owner
|
||||||
has_many :organizations, through: :organization_users
|
has_many :organizations, through: :organization_users
|
||||||
|
|
||||||
# Groups and active users
|
# Groups and active users
|
||||||
scope :active, lambda { where(status: [STATUS_ACTIVE, STATUS_EDIT_PASSWORD]) }
|
scope :active, lambda { where(status: [STATUS_ACTIVE, STATUS_EDIT_INFO]) }
|
||||||
scope :like, lambda { |keywords|
|
scope :like, lambda { |keywords|
|
||||||
where("LOWER(concat(lastname, firstname, login, mail)) LIKE ?", "%#{keywords.split(" ").join('|')}%") unless keywords.blank?
|
where("LOWER(concat(lastname, firstname, login, mail)) LIKE ?", "%#{keywords.split(" ").join('|')}%") unless keywords.blank?
|
||||||
}
|
}
|
||||||
|
@ -379,8 +379,8 @@ class User < Owner
|
||||||
status == STATUS_LOCKED
|
status == STATUS_LOCKED
|
||||||
end
|
end
|
||||||
|
|
||||||
def need_edit_password?
|
def need_edit_info?
|
||||||
status == STATUS_EDIT_PASSWORD
|
status == STATUS_EDIT_INFO
|
||||||
end
|
end
|
||||||
|
|
||||||
def activate
|
def activate
|
||||||
|
@ -395,8 +395,8 @@ class User < Owner
|
||||||
self.status = STATUS_LOCKED
|
self.status = STATUS_LOCKED
|
||||||
end
|
end
|
||||||
|
|
||||||
def need_edit_password
|
def need_edit_info
|
||||||
self.status = STATUS_EDIT_PASSWORD
|
self.status = STATUS_EDIT_INFO
|
||||||
end
|
end
|
||||||
|
|
||||||
def activate!
|
def activate!
|
||||||
|
@ -411,8 +411,8 @@ class User < Owner
|
||||||
update_attribute(:status, STATUS_LOCKED)
|
update_attribute(:status, STATUS_LOCKED)
|
||||||
end
|
end
|
||||||
|
|
||||||
def need_edit_password!
|
def need_edit_info!
|
||||||
update_attribute(:status, STATUS_LOCKED)
|
update_attribute(:status, STATUS_EDIT_INFO)
|
||||||
end
|
end
|
||||||
|
|
||||||
# 课程用户身份
|
# 课程用户身份
|
||||||
|
|
|
@ -8,9 +8,9 @@ json.is_teacher @user.user_extension&.teacher?
|
||||||
json.user_identity @user.identity
|
json.user_identity @user.identity
|
||||||
json.tidding_count 0
|
json.tidding_count 0
|
||||||
json.user_phone_binded @user.phone.present?
|
json.user_phone_binded @user.phone.present?
|
||||||
json.need_edit_password @user.need_edit_password?
|
json.need_edit_info @user.need_edit_info?
|
||||||
# json.phone @user.phone
|
# json.phone @user.phone
|
||||||
# json.email @user.mail
|
json.email @user.mail
|
||||||
json.profile_completed @user.profile_completed?
|
json.profile_completed @user.profile_completed?
|
||||||
json.professional_certification @user.professional_certification
|
json.professional_certification @user.professional_certification
|
||||||
json.devops_step @user.devops_step
|
json.devops_step @user.devops_step
|
||||||
|
|
Loading…
Reference in New Issue