Merge branch 'dev_educoder' of https://git.trustie.net/jasder/forgeplus into dev_educoder
This commit is contained in:
commit
b7be00f3ec
|
@ -6,6 +6,28 @@ class AccountsController < ApplicationController
|
||||||
render json: session
|
render json: session
|
||||||
end
|
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
|
def remote_register
|
||||||
username = params[:username]&.gsub(/\s+/, "")
|
username = params[:username]&.gsub(/\s+/, "")
|
||||||
|
@ -341,6 +363,10 @@ class AccountsController < ApplicationController
|
||||||
{ login: pre + code, email: email, phone: phone }
|
{ login: pre + code, email: email, phone: phone }
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def sync_gitea_params
|
||||||
|
params.permit(:login, :email, :password)
|
||||||
|
end
|
||||||
|
|
||||||
def user_params
|
def user_params
|
||||||
params.require(:user).permit(:login, :email, :phone)
|
params.require(:user).permit(:login, :email, :phone)
|
||||||
end
|
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
|
|
@ -5,11 +5,12 @@ json.user_id @user.id
|
||||||
json.image_url url_to_avatar(@user)
|
json.image_url url_to_avatar(@user)
|
||||||
json.admin @user.admin?
|
json.admin @user.admin?
|
||||||
json.is_teacher @user.user_extension&.teacher?
|
json.is_teacher @user.user_extension&.teacher?
|
||||||
|
json.has_gitea_user @user.gitea_token.present? && @user.gitea_uid.present?
|
||||||
json.user_identity @user.identity
|
json.user_identity @user.identity
|
||||||
json.tidding_count 0
|
json.tidding_count 0
|
||||||
json.user_phone_binded @user.phone.present?
|
json.user_phone_binded @user.phone.present?
|
||||||
# json.phone @user.phone
|
# json.phone @user.phone
|
||||||
# json.email @user.mail
|
json.email @user.mail
|
||||||
json.profile_completed @user.profile_completed?
|
json.profile_completed @user.profile_completed?
|
||||||
json.professional_certification @user.professional_certification
|
json.professional_certification @user.professional_certification
|
||||||
json.devops_step @user.devops_step
|
json.devops_step @user.devops_step
|
||||||
|
|
|
@ -186,6 +186,7 @@ Rails.application.routes.draw do
|
||||||
get :logout
|
get :logout
|
||||||
get :get_verification_code
|
get :get_verification_code
|
||||||
get :valid_email_and_phone
|
get :valid_email_and_phone
|
||||||
|
post :gitea_register
|
||||||
post :remote_register
|
post :remote_register
|
||||||
post :remote_update
|
post :remote_update
|
||||||
post :remote_login
|
post :remote_login
|
||||||
|
|
Loading…
Reference in New Issue