add: user gitea register
This commit is contained in:
parent
823c99bd71
commit
efba4b2b4f
|
@ -6,6 +6,28 @@ class AccountsController < ApplicationController
|
|||
render json: session
|
||||
end
|
||||
|
||||
# 为了同步平台上未注册gitea的用户
|
||||
def gitea_register
|
||||
Users::SyncGiteaForm.new(sync_gitea_params).validate!
|
||||
user = User.find_by(login: sync_gitea_params[:login])
|
||||
return render_error("该用户已同步协作平台") if user.gitea_token.present? && user.gitea_uid.present?
|
||||
user.mail = sync_gitea_params[:email]
|
||||
interactor = Gitea::RegisterInteractor.call({username: sync_gitea_params[:login], email: sync_gitea_params[:email], password: sync_gitea_params[:password]})
|
||||
if interactor.success?
|
||||
gitea_user = interactor.result
|
||||
result = Gitea::User::GenerateTokenService.call(sync_gitea_params[:login], sync_gitea_params[:password])
|
||||
user.gitea_token = result['sha1']
|
||||
user.gitea_uid = gitea_user[:body]['id']
|
||||
user.save!
|
||||
render_ok
|
||||
else
|
||||
render_error(interactor.error)
|
||||
end
|
||||
rescue Exception => e
|
||||
uid_logger_error(e.message)
|
||||
tip_exception(-1, e.message)
|
||||
end
|
||||
|
||||
# 其他平台同步注册的用户
|
||||
def remote_register
|
||||
username = params[:username]&.gsub(/\s+/, "")
|
||||
|
@ -341,6 +363,10 @@ class AccountsController < ApplicationController
|
|||
{ login: pre + code, email: email, phone: phone }
|
||||
end
|
||||
|
||||
def sync_gitea_params
|
||||
params.permit(:login, :email, :password)
|
||||
end
|
||||
|
||||
def user_params
|
||||
params.require(:user).permit(:login, :email, :phone)
|
||||
end
|
||||
|
|
|
@ -0,0 +1,16 @@
|
|||
class Users::SyncGiteaForm < BaseForm
|
||||
attr_accessor :login, :password, :email, :user
|
||||
|
||||
validates :login, :password, :email, presence: true
|
||||
|
||||
validate :check_user, :check_password
|
||||
|
||||
def check_user
|
||||
@user = User.find_by(login: login)
|
||||
raise '用户不存在.' unless user.present?
|
||||
end
|
||||
|
||||
def check_password
|
||||
raise '用户密码错误.' unless user.check_password?(password)
|
||||
end
|
||||
end
|
|
@ -186,6 +186,7 @@ Rails.application.routes.draw do
|
|||
get :logout
|
||||
get :get_verification_code
|
||||
get :valid_email_and_phone
|
||||
post :gitea_register
|
||||
post :remote_register
|
||||
post :remote_update
|
||||
post :remote_login
|
||||
|
|
Loading…
Reference in New Issue