From 1a89f95feb3b17b2d982e293ef77cad56d0e5f77 Mon Sep 17 00:00:00 2001 From: "sylor_huang@126.com" Date: Wed, 15 Apr 2020 09:40:31 +0800 Subject: [PATCH 01/19] =?UTF-8?q?=E5=90=8C=E6=AD=A5=E7=99=BB=E5=BD=95?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98=E6=8E=92=E6=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/concerns/login_helper.rb | 3 +++ 1 file changed, 3 insertions(+) diff --git a/app/controllers/concerns/login_helper.rb b/app/controllers/concerns/login_helper.rb index b85b17a22..442ed6d9a 100644 --- a/app/controllers/concerns/login_helper.rb +++ b/app/controllers/concerns/login_helper.rb @@ -58,6 +58,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 +80,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 From 7988155d56accdc46545446a81eea6706acd36fa Mon Sep 17 00:00:00 2001 From: "sylor_huang@126.com" Date: Wed, 15 Apr 2020 09:47:37 +0800 Subject: [PATCH 02/19] =?UTF-8?q?=E6=B5=8B=E8=AF=95=E8=87=AA=E5=8A=A8?= =?UTF-8?q?=E7=99=BB=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/accounts_controller.rb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/controllers/accounts_controller.rb b/app/controllers/accounts_controller.rb index ae4e83f24..ebd85b516 100644 --- a/app/controllers/accounts_controller.rb +++ b/app/controllers/accounts_controller.rb @@ -163,6 +163,7 @@ class AccountsController < ApplicationController successful_authentication(@user) login_control.clear # 重置每日密码错误次数 + Rails.logger.info("#########_______current_user_id________#############{User.current.try(:id)}") # session[:user_id] = @user.id end @@ -208,6 +209,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 From bc460a6e48002db1f1f50a3c63d3be55b235b1fb Mon Sep 17 00:00:00 2001 From: "sylor_huang@126.com" Date: Wed, 15 Apr 2020 10:02:03 +0800 Subject: [PATCH 03/19] =?UTF-8?q?=E8=87=AA=E5=8A=A8=E7=99=BB=E5=BD=95?= =?UTF-8?q?=E8=BE=93=E5=85=A5logger?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/accounts_controller.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/controllers/accounts_controller.rb b/app/controllers/accounts_controller.rb index ebd85b516..17eed90c6 100644 --- a/app/controllers/accounts_controller.rb +++ b/app/controllers/accounts_controller.rb @@ -163,7 +163,8 @@ class AccountsController < ApplicationController successful_authentication(@user) login_control.clear # 重置每日密码错误次数 - Rails.logger.info("#########_______current_user_id________#############{User.current.try(:id)}") + Rails.logger.info("#########_______User_current_id________#############{User.current.try(:id)}") + Rails.logger.info("#########_______current_user_id________#############{current_user.try(:id)}") # session[:user_id] = @user.id end From c88ba4a4d3e781ef4cb074701254c82943f0550c Mon Sep 17 00:00:00 2001 From: "sylor_huang@126.com" Date: Wed, 15 Apr 2020 10:42:55 +0800 Subject: [PATCH 04/19] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=90=8C=E6=AD=A5?= =?UTF-8?q?=E7=99=BB=E5=BD=95=E7=9A=84=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/accounts_controller.rb | 14 +++++++++++--- config/routes.rb | 1 + 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/app/controllers/accounts_controller.rb b/app/controllers/accounts_controller.rb index 17eed90c6..fcc95089d 100644 --- a/app/controllers/accounts_controller.rb +++ b/app/controllers/accounts_controller.rb @@ -72,6 +72,17 @@ class AccountsController < ApplicationController 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,9 +173,6 @@ class AccountsController < ApplicationController end successful_authentication(@user) - login_control.clear # 重置每日密码错误次数 - Rails.logger.info("#########_______User_current_id________#############{User.current.try(:id)}") - Rails.logger.info("#########_______current_user_id________#############{current_user.try(:id)}") # session[:user_id] = @user.id end diff --git a/config/routes.rb b/config/routes.rb index 4efeadbcc..42b8f85e1 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -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 From 38bd22597edcfd29dfc65b163d77149abca7c9d4 Mon Sep 17 00:00:00 2001 From: "sylor_huang@126.com" Date: Wed, 15 Apr 2020 10:55:57 +0800 Subject: [PATCH 05/19] =?UTF-8?q?=E4=BF=AE=E6=94=B9login=5Fhelper?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/concerns/login_helper.rb | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/app/controllers/concerns/login_helper.rb b/app/controllers/concerns/login_helper.rb index 442ed6d9a..ca748d551 100644 --- a/app/controllers/concerns/login_helper.rb +++ b/app/controllers/concerns/login_helper.rb @@ -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 From f0d7b0b09153a0beac3c8c2c28110856116cce63 Mon Sep 17 00:00:00 2001 From: "sylor_huang@126.com" Date: Wed, 15 Apr 2020 11:05:50 +0800 Subject: [PATCH 06/19] =?UTF-8?q?=E4=BF=AE=E6=94=B9application.rb=20?= =?UTF-8?q?=E9=87=8C=E7=9A=84cookestore?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/application.rb | 3 +++ 1 file changed, 3 insertions(+) diff --git a/config/application.rb b/config/application.rb index f7d05dcd4..feb5605d3 100644 --- a/config/application.rb +++ b/config/application.rb @@ -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 '*' From 1331561bea3d7b12a53ee3f79d3f767712d278fc Mon Sep 17 00:00:00 2001 From: "sylor_huang@126.com" Date: Wed, 15 Apr 2020 11:24:07 +0800 Subject: [PATCH 07/19] =?UTF-8?q?=E4=BF=AE=E6=94=B9remote=5Flogin?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/accounts_controller.rb | 22 +++++++++++++++++++++- config/application.rb | 4 ++-- 2 files changed, 23 insertions(+), 3 deletions(-) diff --git a/app/controllers/accounts_controller.rb b/app/controllers/accounts_controller.rb index fcc95089d..625d1494d 100644 --- a/app/controllers/accounts_controller.rb +++ b/app/controllers/accounts_controller.rb @@ -76,7 +76,27 @@ class AccountsController < ApplicationController def remote_login @user = User.try_to_login(params[:login], params[:password]) if @user - successful_authentication(@user) + self.logged_user = @user + # generate a key and set cookie if autologin + + token = Token.get_or_create_permanent_login_token(@user, "autologin") + cookie_options = { + :value => token.value, + :expires => 1.month.from_now, + :path => '/', + :secure => false, + :httponly => false + } + if edu_setting('cookie_domain').present? + cookie_options = cookie_options.merge(domain: edu_setting('cookie_domain')) + end + + cookies[autologin_cookie_name] = cookie_options + Rails.logger.info("cookies is #{cookies}") + 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 + # successful_authentication(@user) render_ok({user: {id: @user.id, token: @user.gitea_token}}) else render_error("用户不存在") diff --git a/config/application.rb b/config/application.rb index feb5605d3..19276b5fd 100644 --- a/config/application.rb +++ b/config/application.rb @@ -33,8 +33,8 @@ 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.use ActionDispatch::Cookies + # config.middleware.use ActionDispatch::Session::CookieStore config.middleware.insert_before 0, Rack::Cors do allow do From ad4fdf477fe6bf0a5e66c09a171bdee4eb7ed52e Mon Sep 17 00:00:00 2001 From: "sylor_huang@126.com" Date: Wed, 15 Apr 2020 11:26:25 +0800 Subject: [PATCH 08/19] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/accounts_controller.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/accounts_controller.rb b/app/controllers/accounts_controller.rb index 625d1494d..a3335c5a3 100644 --- a/app/controllers/accounts_controller.rb +++ b/app/controllers/accounts_controller.rb @@ -94,7 +94,7 @@ class AccountsController < ApplicationController cookies[autologin_cookie_name] = cookie_options Rails.logger.info("cookies is #{cookies}") 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 # successful_authentication(@user) render_ok({user: {id: @user.id, token: @user.gitea_token}}) From ca0c264cfc37169c7d81bed5d175fbdf23f818ac Mon Sep 17 00:00:00 2001 From: "sylor_huang@126.com" Date: Wed, 15 Apr 2020 11:31:30 +0800 Subject: [PATCH 09/19] =?UTF-8?q?=E8=BF=98=E5=8E=9F=E8=87=AA=E5=8A=A8?= =?UTF-8?q?=E7=99=BB=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/accounts_controller.rb | 22 +--------------------- 1 file changed, 1 insertion(+), 21 deletions(-) diff --git a/app/controllers/accounts_controller.rb b/app/controllers/accounts_controller.rb index a3335c5a3..fcc95089d 100644 --- a/app/controllers/accounts_controller.rb +++ b/app/controllers/accounts_controller.rb @@ -76,27 +76,7 @@ class AccountsController < ApplicationController def remote_login @user = User.try_to_login(params[:login], params[:password]) if @user - self.logged_user = @user - # generate a key and set cookie if autologin - - token = Token.get_or_create_permanent_login_token(@user, "autologin") - cookie_options = { - :value => token.value, - :expires => 1.month.from_now, - :path => '/', - :secure => false, - :httponly => false - } - if edu_setting('cookie_domain').present? - cookie_options = cookie_options.merge(domain: edu_setting('cookie_domain')) - end - - cookies[autologin_cookie_name] = cookie_options - Rails.logger.info("cookies is #{cookies}") - 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 - # successful_authentication(@user) + successful_authentication(@user) render_ok({user: {id: @user.id, token: @user.gitea_token}}) else render_error("用户不存在") From 740477dcd2848e65b870e92be22a5938d1db6d1d Mon Sep 17 00:00:00 2001 From: "sylor_huang@126.com" Date: Wed, 15 Apr 2020 11:47:00 +0800 Subject: [PATCH 10/19] =?UTF-8?q?=E4=BF=AE=E6=94=B9remote=5Fupdate?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/accounts_controller.rb | 2 ++ app/models/user.rb | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/app/controllers/accounts_controller.rb b/app/controllers/accounts_controller.rb index fcc95089d..9f204dd27 100644 --- a/app/controllers/accounts_controller.rb +++ b/app/controllers/accounts_controller.rb @@ -45,6 +45,8 @@ class AccountsController < ApplicationController u = User.find_by(login: params[:old_user_login]) user_mail = u.try(:mail) + Rails.logger.info("#########_____update_user_params________#######{user_params}") + Rails.logger.info("#########_____update_user_extension_params________#######{user_extension_params}") if u.present? u.update_attributes(user_params) diff --git a/app/models/user.rb b/app/models/user.rb index 06bf6c94c..3a2083d29 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -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 From 24f54032d2e6ab67189a96ea7947c7c60277c935 Mon Sep 17 00:00:00 2001 From: "sylor_huang@126.com" Date: Wed, 15 Apr 2020 12:00:22 +0800 Subject: [PATCH 11/19] =?UTF-8?q?=E4=BF=AE=E6=94=B9remote=5Fupdate?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/accounts_controller.rb | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/app/controllers/accounts_controller.rb b/app/controllers/accounts_controller.rb index 9f204dd27..681b5a141 100644 --- a/app/controllers/accounts_controller.rb +++ b/app/controllers/accounts_controller.rb @@ -45,12 +45,24 @@ class AccountsController < ApplicationController u = User.find_by(login: params[:old_user_login]) user_mail = u.try(:mail) + Rails.logger.info("#########____params[:old_user_login]________#######{params[:old_user_login]}") Rails.logger.info("#########_____update_user_params________#######{user_params}") Rails.logger.info("#########_____update_user_extension_params________#######{user_extension_params}") + Rails.logger.info("#########____u________#######{u&.id}") + if u.present? - u.update_attributes(user_params) - u.user_extension.update_attributes(user_extension_params) + if u.update_attributes(user_params) + Rails.logger.info("#####______update_success_________###########") + else + Rails.logger.info("#####______update_error_________###########{u.errors.messages}") + end + + if u.user_extension.update_attributes(user_extension_params) + Rails.logger.info("#####______update_extension_+success_________###########") + else + Rails.logger.info("#####______update_extension___error_________###########{u.user_extension.errors.messages}") + end end sync_params = {} @@ -68,6 +80,7 @@ class AccountsController < ApplicationController 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) From a9bc54315a1b9368d832544d5194fa17a9b743ae Mon Sep 17 00:00:00 2001 From: "sylor_huang@126.com" Date: Wed, 15 Apr 2020 14:27:58 +0800 Subject: [PATCH 12/19] =?UTF-8?q?=E6=B7=BB=E5=8A=A0user=5Fparams=E9=87=8Cp?= =?UTF-8?q?ermit=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/users_controller.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index a2fb9e8bc..6c48d77b8 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -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 From f4066a834dc06fec9d327968580ea4ab8f5c4a81 Mon Sep 17 00:00:00 2001 From: "sylor_huang@126.com" Date: Wed, 15 Apr 2020 14:52:07 +0800 Subject: [PATCH 13/19] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E8=B5=84=E6=96=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/accounts_controller.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/controllers/accounts_controller.rb b/app/controllers/accounts_controller.rb index 681b5a141..e27b6c399 100644 --- a/app/controllers/accounts_controller.rb +++ b/app/controllers/accounts_controller.rb @@ -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 @@ -50,15 +51,14 @@ class AccountsController < ApplicationController Rails.logger.info("#########_____update_user_extension_params________#######{user_extension_params}") Rails.logger.info("#########____u________#######{u&.id}") - if u.present? - if u.update_attributes(user_params) + if u.update!(user_params) Rails.logger.info("#####______update_success_________###########") else Rails.logger.info("#####______update_error_________###########{u.errors.messages}") end - if u.user_extension.update_attributes(user_extension_params) + if u.user_extension.update!(user_extension_params) Rails.logger.info("#####______update_extension_+success_________###########") else Rails.logger.info("#####______update_extension___error_________###########{u.user_extension.errors.messages}") From 4384b6a80eeca5c5595eb07925aa456c2d0feba5 Mon Sep 17 00:00:00 2001 From: "sylor_huang@126.com" Date: Wed, 15 Apr 2020 15:10:17 +0800 Subject: [PATCH 14/19] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E7=9A=84forbidden=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/accounts_controller.rb | 39 +++++++++++++++++++------- 1 file changed, 29 insertions(+), 10 deletions(-) diff --git a/app/controllers/accounts_controller.rb b/app/controllers/accounts_controller.rb index e27b6c399..650cf5ea0 100644 --- a/app/controllers/accounts_controller.rb +++ b/app/controllers/accounts_controller.rb @@ -52,17 +52,36 @@ class AccountsController < ApplicationController Rails.logger.info("#########____u________#######{u&.id}") if u.present? - if u.update!(user_params) - Rails.logger.info("#####______update_success_________###########") - else - Rails.logger.info("#####______update_error_________###########{u.errors.messages}") - end + 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"] - if u.user_extension.update!(user_extension_params) - Rails.logger.info("#####______update_extension_+success_________###########") - else - Rails.logger.info("#####______update_extension___error_________###########{u.user_extension.errors.messages}") - end + 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! + + + + + # if u.update!(user_params) + # Rails.logger.info("#####______update_success_________###########") + # else + # Rails.logger.info("#####______update_error_________###########{u.errors.messages}") + # end + # + # if u.user_extension.update!(user_extension_params) + # Rails.logger.info("#####______update_extension_+success_________###########") + # else + # Rails.logger.info("#####______update_extension___error_________###########{u.user_extension.errors.messages}") + # end end sync_params = {} From 49a94c15858c02c5c75f02d2e0432cee1a1e005d Mon Sep 17 00:00:00 2001 From: "sylor_huang@126.com" Date: Wed, 15 Apr 2020 15:40:38 +0800 Subject: [PATCH 15/19] =?UTF-8?q?=E4=BF=AE=E6=94=B9gitea=E7=9A=84=E5=AF=B9?= =?UTF-8?q?=E5=BA=94=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/accounts_controller.rb | 38 +++++------------------ app/services/gitea/user/update_service.rb | 14 +++++---- 2 files changed, 16 insertions(+), 36 deletions(-) diff --git a/app/controllers/accounts_controller.rb b/app/controllers/accounts_controller.rb index 650cf5ea0..0e2a4d733 100644 --- a/app/controllers/accounts_controller.rb +++ b/app/controllers/accounts_controller.rb @@ -46,10 +46,6 @@ class AccountsController < ApplicationController u = User.find_by(login: params[:old_user_login]) user_mail = u.try(:mail) - Rails.logger.info("#########____params[:old_user_login]________#######{params[:old_user_login]}") - Rails.logger.info("#########_____update_user_params________#######{user_params}") - Rails.logger.info("#########_____update_user_extension_params________#######{user_extension_params}") - Rails.logger.info("#########____u________#######{u&.id}") if u.present? ue = u.user_extension @@ -68,37 +64,19 @@ class AccountsController < ApplicationController 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.merge(email: user_params["mail"], username: user_params["login"]) + end - - # if u.update!(user_params) - # Rails.logger.info("#####______update_success_________###########") - # else - # Rails.logger.info("#####______update_error_________###########{u.errors.messages}") - # end - # - # if u.user_extension.update!(user_extension_params) - # Rails.logger.info("#####______update_extension_+success_________###########") - # else - # Rails.logger.info("#####______update_extension___error_________###########{u.user_extension.errors.messages}") - # end + if sync_params.present? + update_gitea = Gitea::User::UpdateService.call(u.gitea_token, 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 diff --git a/app/services/gitea/user/update_service.rb b/app/services/gitea/user/update_service.rb index d92bd7aeb..c69fbbc34 100644 --- a/app/services/gitea/user/update_service.rb +++ b/app/services/gitea/user/update_service.rb @@ -1,6 +1,6 @@ class Gitea::User::UpdateService < Gitea::ClientService - attr_reader :admin_user, :params - + # attr_reader :admin_user, :params + attr_reader :token, :email, :username # 只有管理员才能修改用户信息 # params: # admin boolean @@ -18,8 +18,9 @@ class Gitea::User::UpdateService < Gitea::ClientService # source_id integer($int64) # website string - def initialize(admin_user, params={}) - @admin_user = admin_user + def initialize(token, params={}) + @token = token + @params = params end def call @@ -27,11 +28,12 @@ class Gitea::User::UpdateService < Gitea::ClientService end private + def url - "/admin/users/#{params[:login_name]}" + "/admin/users/#{username}" end def data_params - Hash.new.merge(token: admin_user.gitea_token, data: params) + Hash.new.merge(token: token, data: params) end end From 213c418f759262f01fa5891552af60f6937bf0e6 Mon Sep 17 00:00:00 2001 From: "sylor_huang@126.com" Date: Wed, 15 Apr 2020 15:55:52 +0800 Subject: [PATCH 16/19] =?UTF-8?q?=E4=BF=AE=E6=94=B9gitea=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E7=9A=84=E6=9B=B4=E6=96=B0=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/accounts_controller.rb | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/app/controllers/accounts_controller.rb b/app/controllers/accounts_controller.rb index 0e2a4d733..7e43abb5c 100644 --- a/app/controllers/accounts_controller.rb +++ b/app/controllers/accounts_controller.rb @@ -65,6 +65,10 @@ class AccountsController < ApplicationController u.save! sync_params = {} + Rails.logger.info("######_________user_param_mail________#############{user_params["mail"]}") + Rails.logger.info("######_________user_mail________#############{user_mail}") + + Rails.logger.info("######_________user_param_login________#############{user_params["login"]}") if (user_params["mail"] && user_params["mail"] != user_mail) || (user_params["login"] && user_params["login"] != params[:old_user_login]) sync_params.merge(email: user_params["mail"], username: user_params["login"]) From 1456764e5bdc901278ccd720992a519bf22db8e4 Mon Sep 17 00:00:00 2001 From: "sylor_huang@126.com" Date: Wed, 15 Apr 2020 16:02:26 +0800 Subject: [PATCH 17/19] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=90=8C=E6=AD=A5?= =?UTF-8?q?=E6=9B=B4=E6=96=B0=E7=9A=84=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/accounts_controller.rb | 4 ++-- app/services/gitea/user/update_service.rb | 7 ++++--- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/app/controllers/accounts_controller.rb b/app/controllers/accounts_controller.rb index 7e43abb5c..41e66a367 100644 --- a/app/controllers/accounts_controller.rb +++ b/app/controllers/accounts_controller.rb @@ -71,11 +71,11 @@ class AccountsController < ApplicationController Rails.logger.info("######_________user_param_login________#############{user_params["login"]}") if (user_params["mail"] && user_params["mail"] != user_mail) || (user_params["login"] && user_params["login"] != params[:old_user_login]) - sync_params.merge(email: user_params["mail"], username: user_params["login"]) + sync_params = sync_params.merge(email: user_params["mail"], username: user_params["login"]) end if sync_params.present? - update_gitea = Gitea::User::UpdateService.call(u.gitea_token, sync_params) + update_gitea = Gitea::User::UpdateService.call(u.gitea_token, params[:old_user_login], sync_params) Rails.logger.info("########________update_gitea__________###########__status:_#{update_gitea.status}") end end diff --git a/app/services/gitea/user/update_service.rb b/app/services/gitea/user/update_service.rb index c69fbbc34..3650d3902 100644 --- a/app/services/gitea/user/update_service.rb +++ b/app/services/gitea/user/update_service.rb @@ -1,6 +1,6 @@ class Gitea::User::UpdateService < Gitea::ClientService # attr_reader :admin_user, :params - attr_reader :token, :email, :username + attr_reader :token, :old_login, :params # 只有管理员才能修改用户信息 # params: # admin boolean @@ -18,9 +18,10 @@ class Gitea::User::UpdateService < Gitea::ClientService # source_id integer($int64) # website string - def initialize(token, params={}) + def initialize(token, old_login, params={}) @token = token @params = params + @old_login = old_login end def call @@ -30,7 +31,7 @@ class Gitea::User::UpdateService < Gitea::ClientService private def url - "/admin/users/#{username}" + "/admin/users/#{old_login}" end def data_params From e8df65e4892300ac84dfdbbfb60231be2b3e4db0 Mon Sep 17 00:00:00 2001 From: "sylor_huang@126.com" Date: Wed, 15 Apr 2020 16:28:09 +0800 Subject: [PATCH 18/19] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E6=8A=A5403=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/accounts_controller.rb | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/app/controllers/accounts_controller.rb b/app/controllers/accounts_controller.rb index 41e66a367..0ff3bf0fd 100644 --- a/app/controllers/accounts_controller.rb +++ b/app/controllers/accounts_controller.rb @@ -65,17 +65,13 @@ class AccountsController < ApplicationController u.save! sync_params = {} - Rails.logger.info("######_________user_param_mail________#############{user_params["mail"]}") - Rails.logger.info("######_________user_mail________#############{user_mail}") - - Rails.logger.info("######_________user_param_login________#############{user_params["login"]}") 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"], username: user_params["login"]) + sync_params = sync_params.merge(email: user_params["mail"], login_name: user_params["login"]) end if sync_params.present? - update_gitea = Gitea::User::UpdateService.call(u.gitea_token, params[:old_user_login], sync_params) + update_gitea = Gitea::User::UpdateService.call("", params[:old_user_login], sync_params) Rails.logger.info("########________update_gitea__________###########__status:_#{update_gitea.status}") end end From e208193ffd26b4c6b5917228549841e1b11bd91e Mon Sep 17 00:00:00 2001 From: "sylor_huang@126.com" Date: Wed, 15 Apr 2020 17:02:36 +0800 Subject: [PATCH 19/19] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=AF=86=E7=A0=81?= =?UTF-8?q?=E5=92=8C=E7=99=BB=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/accounts_controller.rb | 3 ++- app/controllers/concerns/login_helper.rb | 9 +++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/app/controllers/accounts_controller.rb b/app/controllers/accounts_controller.rb index 0ff3bf0fd..682c5f2e3 100644 --- a/app/controllers/accounts_controller.rb +++ b/app/controllers/accounts_controller.rb @@ -52,6 +52,7 @@ class AccountsController < ApplicationController 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"] @@ -67,7 +68,7 @@ class AccountsController < ApplicationController 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"]) + sync_params = sync_params.merge(email: user_params["mail"], login_name: user_params["login"], full_name: user_params["login"]) end if sync_params.present? diff --git a/app/controllers/concerns/login_helper.rb b/app/controllers/concerns/login_helper.rb index ca748d551..a389fa72d 100644 --- a/app/controllers/concerns/login_helper.rb +++ b/app/controllers/concerns/login_helper.rb @@ -44,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"