diff --git a/app/controllers/accounts_controller.rb b/app/controllers/accounts_controller.rb index c2d7c99c1..70e5b603b 100644 --- a/app/controllers/accounts_controller.rb +++ b/app/controllers/accounts_controller.rb @@ -225,6 +225,8 @@ class AccountsController < ApplicationController render_result(-7, e.message) rescue Register::BaseForm::VerifiCodeError => e render_result(-6, e.message) + rescue ActiveRecord::Rollback => e + render_result(-1, "服务器异常") rescue Exception => e uid_logger_error(e.message) tip_exception(e.message) diff --git a/app/services/accounts/reset_password_service.rb b/app/services/accounts/reset_password_service.rb index 61a4bb1cf..5202fe77a 100644 --- a/app/services/accounts/reset_password_service.rb +++ b/app/services/accounts/reset_password_service.rb @@ -16,6 +16,13 @@ module Accounts ##### password: #{@password} password_confirmation: #{@password_confirmation}" @user.password, @user.password_confirmation = password, password_confirmation + + sync_params = { + password: password, + email: @user.mail + } + interactor = Gitea::User::UpdateInteractor.call(@user.login, sync_params) + raise ActiveRecord::Rollback unless interactor.success? @user end