diff --git a/app/controllers/accounts_controller.rb b/app/controllers/accounts_controller.rb index bf68e2363..4be8a62a3 100644 --- a/app/controllers/accounts_controller.rb +++ b/app/controllers/accounts_controller.rb @@ -37,6 +37,43 @@ class AccountsController < ApplicationController tip_exception(-1, e.message) end + # 其他平台修改用户的信息,这边同步修改 + def remote_update + ActiveRecord::Base.transaction do + user_params = params[:user_params].compact + user_extension_params = params[:user_extension_params].compact + + u = User.find_by(login: params[:old_user_login]) + user_mail = u.try(:mail) + + if u.present? + u.update_attributes(user_params) + u.user_extension.update_attributes(user_extension_params) + 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 + end + rescue Exception => e + uid_logger_error(e.message) + tip_exception(-1, e.message) + end + + + # 用户注册 # 注意:用户注册需要兼顾本地版,本地版是不需要验证码及激活码以及使用授权的,注册完成即可使用 # params[:login] 邮箱或者手机号 diff --git a/app/models/user.rb b/app/models/user.rb index 504d03837..06bf6c94c 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -592,7 +592,7 @@ class User < ApplicationRecord anonymous_user = AnonymousUser.unscoped.take if anonymous_user.nil? anonymous_user = AnonymousUser.unscoped.create(lastname: 'Anonymous', firstname: '', login: '', - mail: '358551897@qq.com', phone: '13333333333', status: 0, platform: User.platforms[:forge]) + mail: '358551897@qq.com', phone: '13333333333', status: 0, platform: User.platform[:forge]) raise "Unable to create the anonymous user: error_info:#{anonymous_user.errors.messages}" if anonymous_user.new_record? end anonymous_user diff --git a/config/routes.rb b/config/routes.rb index 3faa79cd3..4efeadbcc 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -122,6 +122,7 @@ Rails.application.routes.draw do get :get_verification_code get :valid_email_and_phone post :remote_register + post :remote_update end end