|
|
|
@ -8,24 +8,24 @@ class AccountsController < ApplicationController
|
|
|
|
|
|
|
|
|
|
# 其他平台同步注册的用户
|
|
|
|
|
def remote_register
|
|
|
|
|
phone = params[:phone]&.gsub(/\s+/, "")
|
|
|
|
|
username = params[:username]&.gsub(/\s+/, "")
|
|
|
|
|
email = params[:email]&.gsub(/\s+/, "")
|
|
|
|
|
password = params[:password]
|
|
|
|
|
platform = (params[:platform] || 'forge')&.gsub(/\s+/, "")
|
|
|
|
|
|
|
|
|
|
@user = User.new(admin: false, login: phone, mail: email, phone: phone, type: "User")
|
|
|
|
|
@user.admin = false
|
|
|
|
|
@user.type = 'User'
|
|
|
|
|
@user = User.new(admin: false, login: username, mail: email, type: "User")
|
|
|
|
|
@user.password = password
|
|
|
|
|
@user.platform = platform
|
|
|
|
|
@user.activate
|
|
|
|
|
|
|
|
|
|
ActiveRecord::Base.transaction do
|
|
|
|
|
interactor = Gitea::RegisterInteractor.call({username: phone, email: email, password: password})
|
|
|
|
|
interactor = Gitea::RegisterInteractor.call({username: username, email: email, password: password})
|
|
|
|
|
if interactor.success?
|
|
|
|
|
result = Gitea::User::GenerateTokenService.new(phone, password).call
|
|
|
|
|
gitea_user = interactor.result
|
|
|
|
|
result = Gitea::User::GenerateTokenService.new(username, password).call
|
|
|
|
|
@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
|
|
|
|
|