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_uid = gitea_user['id']
|
||||
if @user.save!
|
||||
UserExtension.create!(user_id: @user.id)
|
||||
render_ok({user: {id: @user.id, token: @user.gitea_token}})
|
||||
end
|
||||
else
|
||||
|
@ -47,31 +48,54 @@ class AccountsController < ApplicationController
|
|||
user_mail = u.try(:mail)
|
||||
|
||||
if u.present?
|
||||
u.update_attributes(user_params)
|
||||
u.user_extension.update_attributes(user_extension_params)
|
||||
ue = u.user_extension
|
||||
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
|
||||
|
||||
sync_params = {}
|
||||
|
||||
if user_params["mail"] && user_params["mail"] != user_mail
|
||||
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
|
||||
render_ok({})
|
||||
end
|
||||
rescue Exception => e
|
||||
uid_logger_error(e.message)
|
||||
tip_exception(-1, e.message)
|
||||
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
|
||||
|
||||
successful_authentication(@user)
|
||||
login_control.clear # 重置每日密码错误次数
|
||||
|
||||
# session[:user_id] = @user.id
|
||||
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)
|
||||
user.update_column(:last_login_on, Time.now)
|
||||
session[:"#{default_yun_session}"] = user.id
|
||||
Rails.logger.info("#########_____session_default_yun_session__________###############{default_yun_session}")
|
||||
# 注册完成后有一天的试用申请(先去掉)
|
||||
# UserDayCertification.create(user_id: user.id, status: 1)
|
||||
end
|
||||
|
|
|
@ -21,6 +21,10 @@ module LoginHelper
|
|||
if edu_setting('cookie_domain').present?
|
||||
cookie_options = cookie_options.merge(domain: edu_setting('cookie_domain'))
|
||||
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
|
||||
Rails.logger.info("cookies is #{cookies}")
|
||||
end
|
||||
|
@ -40,13 +44,22 @@ module LoginHelper
|
|||
end
|
||||
|
||||
def logout_user
|
||||
Rails.logger.info("####################__11111______######")
|
||||
|
||||
if User.current.logged?
|
||||
Rails.logger.info("####################__2222_______######")
|
||||
if autologin = cookies.delete(autologin_cookie_name)
|
||||
Rails.logger.info("####################__33333______######")
|
||||
|
||||
User.current.delete_autologin_token(autologin)
|
||||
end
|
||||
Rails.logger.info("####################__4444444______######")
|
||||
|
||||
User.current.delete_session_token(session[:tk])
|
||||
self.logged_user = nil
|
||||
end
|
||||
Rails.logger.info("####################__55555______######")
|
||||
|
||||
# 云上实验室退出清理当前session
|
||||
laboratory ||= (Laboratory.find_by_subdomain(request.subdomain) || Laboratory.find(1))
|
||||
default_yun_session = "#{laboratory.try(:identifier).split('.').first}_user_id"
|
||||
|
@ -58,6 +71,8 @@ module LoginHelper
|
|||
def logged_user=(user)
|
||||
# reset_session
|
||||
if user && user.is_a?(User)
|
||||
Rails.logger.info("########________logged_user___________###########{user.id}")
|
||||
|
||||
User.current = user
|
||||
start_user_session(user)
|
||||
else
|
||||
|
@ -78,6 +93,7 @@ module LoginHelper
|
|||
# # end
|
||||
|
||||
# session[:user_id] = user.id
|
||||
Rails.logger.info("########________start_user_session___________###########{user.id}")
|
||||
session[:"#{default_yun_session}"] = user.id
|
||||
session[:ctime] = Time.now.utc.to_i
|
||||
session[:atime] = Time.now.utc.to_i
|
||||
|
|
|
@ -109,11 +109,11 @@ class UsersController < ApplicationController
|
|||
end
|
||||
|
||||
def user_params
|
||||
params.require(:user).permit(:nickname, :lastname, :show_realname,
|
||||
params.require(:user).permit(:nickname, :lastname, :show_realname,:login,:mail,
|
||||
user_extension_attributes: [
|
||||
:gender, :location, :location_city,
|
||||
:occupation, :technical_title,
|
||||
:school_id, :department_id]
|
||||
:school_id, :department_id,:identity, :student_id, :description]
|
||||
)
|
||||
end
|
||||
|
||||
|
|
|
@ -201,7 +201,7 @@ class User < ApplicationRecord
|
|||
#
|
||||
# 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 :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
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
class Gitea::User::UpdateService < Gitea::ClientService
|
||||
attr_reader :admin_user, :params
|
||||
|
||||
# attr_reader :admin_user, :params
|
||||
attr_reader :token, :old_login, :params
|
||||
# 只有管理员才能修改用户信息
|
||||
# params:
|
||||
# admin boolean
|
||||
|
@ -18,8 +18,10 @@ class Gitea::User::UpdateService < Gitea::ClientService
|
|||
# source_id integer($int64)
|
||||
# website string
|
||||
|
||||
def initialize(admin_user, params={})
|
||||
@admin_user = admin_user
|
||||
def initialize(token, old_login, params={})
|
||||
@token = token
|
||||
@params = params
|
||||
@old_login = old_login
|
||||
end
|
||||
|
||||
def call
|
||||
|
@ -27,11 +29,12 @@ class Gitea::User::UpdateService < Gitea::ClientService
|
|||
end
|
||||
|
||||
private
|
||||
|
||||
def url
|
||||
"/admin/users/#{params[:login_name]}"
|
||||
"/admin/users/#{old_login}"
|
||||
end
|
||||
|
||||
def data_params
|
||||
Hash.new.merge(token: admin_user.gitea_token, data: params)
|
||||
Hash.new.merge(token: token, data: params)
|
||||
end
|
||||
end
|
||||
|
|
|
@ -33,6 +33,9 @@ module Educoderplus
|
|||
provider :cas, url: 'https://urp.tfswufe.edu.cn/cas'
|
||||
end
|
||||
|
||||
# config.middleware.use ActionDispatch::Cookies
|
||||
# config.middleware.use ActionDispatch::Session::CookieStore
|
||||
|
||||
config.middleware.insert_before 0, Rack::Cors do
|
||||
allow do
|
||||
origins '*'
|
||||
|
|
|
@ -123,6 +123,7 @@ Rails.application.routes.draw do
|
|||
get :valid_email_and_phone
|
||||
post :remote_register
|
||||
post :remote_update
|
||||
post :remote_login
|
||||
end
|
||||
end
|
||||
|
||||
|
|
Loading…
Reference in New Issue