Merge branch 'develop' of http://git.trustie.net/jasder/forgeplus into develop
This commit is contained in:
commit
6951f6a795
|
@ -26,6 +26,7 @@ class AccountsController < ApplicationController
|
||||||
@user.gitea_token = result['sha1']
|
@user.gitea_token = result['sha1']
|
||||||
@user.gitea_uid = gitea_user['id']
|
@user.gitea_uid = gitea_user['id']
|
||||||
if @user.save!
|
if @user.save!
|
||||||
|
UserExtension.create!(user_id: @user.id)
|
||||||
render_ok({user: {id: @user.id, token: @user.gitea_token}})
|
render_ok({user: {id: @user.id, token: @user.gitea_token}})
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
|
@ -47,31 +48,54 @@ class AccountsController < ApplicationController
|
||||||
user_mail = u.try(:mail)
|
user_mail = u.try(:mail)
|
||||||
|
|
||||||
if u.present?
|
if u.present?
|
||||||
u.update_attributes(user_params)
|
ue = u.user_extension
|
||||||
u.user_extension.update_attributes(user_extension_params)
|
u.login = user_params["login"] if user_params["login"]
|
||||||
|
u.mail = user_params["mail"] if user_params["mail"]
|
||||||
|
u.lastname = user_params["lastname"] if user_params["lastname"]
|
||||||
|
u.password = user_params["password"] if user_params["password"]
|
||||||
|
|
||||||
|
ue.gender = user_extension_params["gender"]
|
||||||
|
ue.school_id = user_extension_params["school_id"]
|
||||||
|
ue.location = user_extension_params["location"]
|
||||||
|
ue.location_city = user_extension_params["location_city"]
|
||||||
|
ue.identity = user_extension_params["identity"]
|
||||||
|
ue.technical_title = user_extension_params["technical_title"]
|
||||||
|
ue.student_id = user_extension_params["student_id"]
|
||||||
|
ue.description = user_extension_params["description"]
|
||||||
|
ue.save!
|
||||||
|
u.save!
|
||||||
|
|
||||||
|
sync_params = {}
|
||||||
|
|
||||||
|
if (user_params["mail"] && user_params["mail"] != user_mail) || (user_params["login"] && user_params["login"] != params[:old_user_login])
|
||||||
|
sync_params = sync_params.merge(email: user_params["mail"], login_name: user_params["login"], full_name: user_params["login"])
|
||||||
|
end
|
||||||
|
|
||||||
|
if sync_params.present?
|
||||||
|
update_gitea = Gitea::User::UpdateService.call("", params[:old_user_login], sync_params)
|
||||||
|
Rails.logger.info("########________update_gitea__________###########__status:_#{update_gitea.status}")
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
sync_params = {}
|
|
||||||
|
|
||||||
if user_params["mail"] && user_params["mail"] != user_mail
|
render_ok({})
|
||||||
sync_params.merge(email: user_params["mail"])
|
|
||||||
end
|
|
||||||
if user_params["login"] && user_params["login"] != params[:old_user_login]
|
|
||||||
sync_params.merge(username: user_params["login"])
|
|
||||||
end
|
|
||||||
|
|
||||||
sync_params = sync_params.compact
|
|
||||||
if sync_params.present?
|
|
||||||
admin_user = User.find(1)
|
|
||||||
update_gitea = Gitea::User::UpdateService.call(admin_user, sync_params)
|
|
||||||
Rails.logger.info("########________update_gitea__________###########__status:_#{update_gitea.status}")
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
rescue Exception => e
|
rescue Exception => e
|
||||||
uid_logger_error(e.message)
|
uid_logger_error(e.message)
|
||||||
tip_exception(-1, e.message)
|
tip_exception(-1, e.message)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# 其他平台同步登录
|
||||||
|
def remote_login
|
||||||
|
@user = User.try_to_login(params[:login], params[:password])
|
||||||
|
if @user
|
||||||
|
successful_authentication(@user)
|
||||||
|
render_ok({user: {id: @user.id, token: @user.gitea_token}})
|
||||||
|
else
|
||||||
|
render_error("用户不存在")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# 用户注册
|
# 用户注册
|
||||||
|
@ -162,7 +186,6 @@ class AccountsController < ApplicationController
|
||||||
end
|
end
|
||||||
|
|
||||||
successful_authentication(@user)
|
successful_authentication(@user)
|
||||||
login_control.clear # 重置每日密码错误次数
|
|
||||||
|
|
||||||
# session[:user_id] = @user.id
|
# session[:user_id] = @user.id
|
||||||
end
|
end
|
||||||
|
@ -208,6 +231,7 @@ class AccountsController < ApplicationController
|
||||||
UserAction.create(:action_id => user.try(:id), :action_type => "Login", :user_id => user.try(:id), :ip => request.remote_ip)
|
UserAction.create(:action_id => user.try(:id), :action_type => "Login", :user_id => user.try(:id), :ip => request.remote_ip)
|
||||||
user.update_column(:last_login_on, Time.now)
|
user.update_column(:last_login_on, Time.now)
|
||||||
session[:"#{default_yun_session}"] = user.id
|
session[:"#{default_yun_session}"] = user.id
|
||||||
|
Rails.logger.info("#########_____session_default_yun_session__________###############{default_yun_session}")
|
||||||
# 注册完成后有一天的试用申请(先去掉)
|
# 注册完成后有一天的试用申请(先去掉)
|
||||||
# UserDayCertification.create(user_id: user.id, status: 1)
|
# UserDayCertification.create(user_id: user.id, status: 1)
|
||||||
end
|
end
|
||||||
|
|
|
@ -21,6 +21,10 @@ module LoginHelper
|
||||||
if edu_setting('cookie_domain').present?
|
if edu_setting('cookie_domain').present?
|
||||||
cookie_options = cookie_options.merge(domain: edu_setting('cookie_domain'))
|
cookie_options = cookie_options.merge(domain: edu_setting('cookie_domain'))
|
||||||
end
|
end
|
||||||
|
Rails.logger.info("####_______token___________#### #{token}")
|
||||||
|
Rails.logger.info("####_______cookie_options__________#### #{cookie_options}")
|
||||||
|
Rails.logger.info("####_______autologin_cookie_name__________#### #{autologin_cookie_name}")
|
||||||
|
|
||||||
cookies[autologin_cookie_name] = cookie_options
|
cookies[autologin_cookie_name] = cookie_options
|
||||||
Rails.logger.info("cookies is #{cookies}")
|
Rails.logger.info("cookies is #{cookies}")
|
||||||
end
|
end
|
||||||
|
@ -40,13 +44,22 @@ module LoginHelper
|
||||||
end
|
end
|
||||||
|
|
||||||
def logout_user
|
def logout_user
|
||||||
|
Rails.logger.info("####################__11111______######")
|
||||||
|
|
||||||
if User.current.logged?
|
if User.current.logged?
|
||||||
|
Rails.logger.info("####################__2222_______######")
|
||||||
if autologin = cookies.delete(autologin_cookie_name)
|
if autologin = cookies.delete(autologin_cookie_name)
|
||||||
|
Rails.logger.info("####################__33333______######")
|
||||||
|
|
||||||
User.current.delete_autologin_token(autologin)
|
User.current.delete_autologin_token(autologin)
|
||||||
end
|
end
|
||||||
|
Rails.logger.info("####################__4444444______######")
|
||||||
|
|
||||||
User.current.delete_session_token(session[:tk])
|
User.current.delete_session_token(session[:tk])
|
||||||
self.logged_user = nil
|
self.logged_user = nil
|
||||||
end
|
end
|
||||||
|
Rails.logger.info("####################__55555______######")
|
||||||
|
|
||||||
# 云上实验室退出清理当前session
|
# 云上实验室退出清理当前session
|
||||||
laboratory ||= (Laboratory.find_by_subdomain(request.subdomain) || Laboratory.find(1))
|
laboratory ||= (Laboratory.find_by_subdomain(request.subdomain) || Laboratory.find(1))
|
||||||
default_yun_session = "#{laboratory.try(:identifier).split('.').first}_user_id"
|
default_yun_session = "#{laboratory.try(:identifier).split('.').first}_user_id"
|
||||||
|
@ -58,6 +71,8 @@ module LoginHelper
|
||||||
def logged_user=(user)
|
def logged_user=(user)
|
||||||
# reset_session
|
# reset_session
|
||||||
if user && user.is_a?(User)
|
if user && user.is_a?(User)
|
||||||
|
Rails.logger.info("########________logged_user___________###########{user.id}")
|
||||||
|
|
||||||
User.current = user
|
User.current = user
|
||||||
start_user_session(user)
|
start_user_session(user)
|
||||||
else
|
else
|
||||||
|
@ -78,6 +93,7 @@ module LoginHelper
|
||||||
# # end
|
# # end
|
||||||
|
|
||||||
# session[:user_id] = user.id
|
# session[:user_id] = user.id
|
||||||
|
Rails.logger.info("########________start_user_session___________###########{user.id}")
|
||||||
session[:"#{default_yun_session}"] = user.id
|
session[:"#{default_yun_session}"] = user.id
|
||||||
session[:ctime] = Time.now.utc.to_i
|
session[:ctime] = Time.now.utc.to_i
|
||||||
session[:atime] = Time.now.utc.to_i
|
session[:atime] = Time.now.utc.to_i
|
||||||
|
|
|
@ -109,11 +109,11 @@ class UsersController < ApplicationController
|
||||||
end
|
end
|
||||||
|
|
||||||
def user_params
|
def user_params
|
||||||
params.require(:user).permit(:nickname, :lastname, :show_realname,
|
params.require(:user).permit(:nickname, :lastname, :show_realname,:login,:mail,
|
||||||
user_extension_attributes: [
|
user_extension_attributes: [
|
||||||
:gender, :location, :location_city,
|
:gender, :location, :location_city,
|
||||||
:occupation, :technical_title,
|
:occupation, :technical_title,
|
||||||
:school_id, :department_id]
|
:school_id, :department_id,:identity, :student_id, :description]
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -201,7 +201,7 @@ class User < ApplicationRecord
|
||||||
#
|
#
|
||||||
# validations
|
# validations
|
||||||
#
|
#
|
||||||
validates_presence_of :login, :if => Proc.new { |user| !user.is_a?(AnonymousUser) }, case_sensitive: false
|
# validates_presence_of :login, :if => Proc.new { |user| !user.is_a?(AnonymousUser) }, case_sensitive: false
|
||||||
validates_uniqueness_of :login, :if => Proc.new { |user| user.login_changed? && user.login.present? }, case_sensitive: false
|
validates_uniqueness_of :login, :if => Proc.new { |user| user.login_changed? && user.login.present? }, case_sensitive: false
|
||||||
validates_uniqueness_of :mail, :if => Proc.new { |user| user.mail_changed? && user.mail.present? }, case_sensitive: false
|
validates_uniqueness_of :mail, :if => Proc.new { |user| user.mail_changed? && user.mail.present? }, case_sensitive: false
|
||||||
# validates_uniqueness_of :phone, :if => Proc.new { |user| user.phone_changed? && user.phone.present? }, case_sensitive: false
|
# validates_uniqueness_of :phone, :if => Proc.new { |user| user.phone_changed? && user.phone.present? }, case_sensitive: false
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
class Gitea::User::UpdateService < Gitea::ClientService
|
class Gitea::User::UpdateService < Gitea::ClientService
|
||||||
attr_reader :admin_user, :params
|
# attr_reader :admin_user, :params
|
||||||
|
attr_reader :token, :old_login, :params
|
||||||
# 只有管理员才能修改用户信息
|
# 只有管理员才能修改用户信息
|
||||||
# params:
|
# params:
|
||||||
# admin boolean
|
# admin boolean
|
||||||
|
@ -18,8 +18,10 @@ class Gitea::User::UpdateService < Gitea::ClientService
|
||||||
# source_id integer($int64)
|
# source_id integer($int64)
|
||||||
# website string
|
# website string
|
||||||
|
|
||||||
def initialize(admin_user, params={})
|
def initialize(token, old_login, params={})
|
||||||
@admin_user = admin_user
|
@token = token
|
||||||
|
@params = params
|
||||||
|
@old_login = old_login
|
||||||
end
|
end
|
||||||
|
|
||||||
def call
|
def call
|
||||||
|
@ -27,11 +29,12 @@ class Gitea::User::UpdateService < Gitea::ClientService
|
||||||
end
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
def url
|
def url
|
||||||
"/admin/users/#{params[:login_name]}"
|
"/admin/users/#{old_login}"
|
||||||
end
|
end
|
||||||
|
|
||||||
def data_params
|
def data_params
|
||||||
Hash.new.merge(token: admin_user.gitea_token, data: params)
|
Hash.new.merge(token: token, data: params)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -33,6 +33,9 @@ module Educoderplus
|
||||||
provider :cas, url: 'https://urp.tfswufe.edu.cn/cas'
|
provider :cas, url: 'https://urp.tfswufe.edu.cn/cas'
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# config.middleware.use ActionDispatch::Cookies
|
||||||
|
# config.middleware.use ActionDispatch::Session::CookieStore
|
||||||
|
|
||||||
config.middleware.insert_before 0, Rack::Cors do
|
config.middleware.insert_before 0, Rack::Cors do
|
||||||
allow do
|
allow do
|
||||||
origins '*'
|
origins '*'
|
||||||
|
|
|
@ -123,6 +123,7 @@ Rails.application.routes.draw do
|
||||||
get :valid_email_and_phone
|
get :valid_email_and_phone
|
||||||
post :remote_register
|
post :remote_register
|
||||||
post :remote_update
|
post :remote_update
|
||||||
|
post :remote_login
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue