Browse Source

Merge branch 'dev_educoder' of https://git.trustie.net/jasder/forgeplus into dev_educoder

pull/57/head
jasder 5 years ago
parent
commit
b7be00f3ec
4 changed files with 45 additions and 1 deletions
  1. +26
    -0
      app/controllers/accounts_controller.rb
  2. +16
    -0
      app/forms/users/sync_gitea_form.rb
  3. +2
    -1
      app/views/users/get_user_info.json.jbuilder
  4. +1
    -0
      config/routes.rb

+ 26
- 0
app/controllers/accounts_controller.rb View File

@@ -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


+ 16
- 0
app/forms/users/sync_gitea_form.rb View File

@@ -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

+ 2
- 1
app/views/users/get_user_info.json.jbuilder View File

@@ -5,11 +5,12 @@ json.user_id @user.id
json.image_url url_to_avatar(@user)
json.admin @user.admin?
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.tidding_count 0
json.user_phone_binded @user.phone.present?
# json.phone @user.phone
# json.email @user.mail
json.email @user.mail
json.profile_completed @user.profile_completed?
json.professional_certification @user.professional_certification
json.devops_step @user.devops_step


+ 1
- 0
config/routes.rb View File

@@ -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…
Cancel
Save