diff --git a/app/controllers/accounts_controller.rb b/app/controllers/accounts_controller.rb index 542b61d45..fe1c58843 100644 --- a/app/controllers/accounts_controller.rb +++ b/app/controllers/accounts_controller.rb @@ -205,8 +205,7 @@ class AccountsController < ApplicationController end successful_authentication(@user) - # TODO用户密码未同步 - Gitea::User::UpdateInteractor.call(@user.login, {email: @user.mail, password: params[:password].to_s}) unless @user.is_sync_pwd? + sync_pwd_to_gitea!(@user, {password: params[:password].to_s}) # TODO用户密码未同步 # session[:user_id] = @user.id end diff --git a/app/controllers/concerns/login_helper.rb b/app/controllers/concerns/login_helper.rb index 28c8c24ba..8bfe7e4e5 100644 --- a/app/controllers/concerns/login_helper.rb +++ b/app/controllers/concerns/login_helper.rb @@ -92,4 +92,18 @@ module LoginHelper session[:ctime] = Time.now.utc.to_i session[:atime] = Time.now.utc.to_i end + + def sync_pwd_to_gitea!(user, hash={}) + return true if user.is_sync_pwd? + + sync_params = { email: user.mail } + interactor = Gitea::User::UpdateInteractor.call(user.login, sync_params.merge(hash)) + if interactor.success? + Rails.logger.info "########_ login is #{user.login} sync_pwd_to_gitea success _########" + true + else + Rails.logger.info "########_ login is #{user.login} sync_pwd_to_gitea fail!: #{interactor.error}" + false + end + end end diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index 3d0d4499e..e722d681d 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -123,12 +123,8 @@ class UsersController < ApplicationController def sync_gitea_pwd return render_error("未找到相关的用户") if @user.blank? - sync_params = { - email: @user.mail, - password: params[:password].to_s - } - interactor = Gitea::User::UpdateInteractor.call(@user.login, sync_params) - interactor.success? ? render_ok : render_error(interactor.error) + flag = sync_pwd_to_gitea!(@user, {password: params[:password].to_s}) + flag ? render_ok : render_error('同步失败!') end # TODO