Browse Source

Merge branch 'standalone_develop' into pre_trustie_server

pull/306/head
yystopf 4 years ago
parent
commit
e8bfd0c955
4 changed files with 52 additions and 1 deletions
  1. +22
    -0
      app/controllers/accounts_controller.rb
  2. +28
    -0
      app/controllers/concerns/register_helper.rb
  3. +1
    -1
      app/forms/gitea/user/update_form.rb
  4. +1
    -0
      config/routes.rb

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

@@ -1,6 +1,25 @@
class AccountsController < ApplicationController
before_action :require_login, only: [:simple_update]
include ApplicationHelper

#skip_before_action :check_account, :only => [:logout]

def simple_update
simple_update_params.merge!(username: params[:username]&.gsub(/\s+/, ""))
simple_update_params.merge!(email: params[:email]&.gsub(/\s+/, ""))
simple_update_params.merge!(platform: (params[:platform] || 'forge')&.gsub(/\s+/, ""))
Register::RemoteForm.new(simple_update_params).validate!

ActiveRecord::Base.transaction do
result = auto_update(current_user, simple_update_params)
if result[:message].blank?
render_ok
else
render_error(result[:message])
end
end
end

def index
render json: session
end
@@ -383,4 +402,7 @@ class AccountsController < ApplicationController
params.permit(:username, :email, :password, :platform)
end
def simple_update_params
params.permit(:username, :email, :password, :platform)
end
end

+ 28
- 0
app/controllers/concerns/register_helper.rb View File

@@ -58,4 +58,32 @@ module RegisterHelper
end
end

def auto_update(user, params={})
return if params.blank?
result = {message: nil, user: nil}
before_login = user.login
user.login = params[:username]
user.password = params[:password]
user.mail = params[:email]

if user.save!
sync_params = {
password: params[:password].to_s,
email: params[:email],
login_name: params[:username],
new_name: params[:username],
source_id: 0
}
interactor = Gitea::User::UpdateInteractor.call(before_login, sync_params)
if interactor.success?
result[:user] = user
else
result[:message] = '用户同步Gitea失败!'
end
else
result[:message] = user.errors.full_messages.join(",")
return
end
end
end

+ 1
- 1
app/forms/gitea/user/update_form.rb View File

@@ -4,7 +4,7 @@ class Gitea::User::UpdateForm

attr_accessor :username, :email, :admin, :allow_create_organization, :allow_git_hook, :allow_import_local,
:full_name, :location, :login_name, :max_repo_creation, :must_change_password, :password, :prohibit_login,
:source_id, :website
:source_id, :website, :new_name

validates :username, presence: true
validates :email, presence: true, format: { with: EMAIL_REGEX, multiline: true }


+ 1
- 0
config/routes.rb View File

@@ -214,6 +214,7 @@ Rails.application.routes.draw do
post :remote_password
post :change_password
post :check
post :simple_update
end
end



Loading…
Cancel
Save