修改bug
This commit is contained in:
parent
af62da7ae6
commit
17ad972b38
|
@ -1,17 +1,16 @@
|
||||||
class Gitea::UserForm
|
class Gitea::UserForm
|
||||||
include ActiveModel::Model
|
include ActiveModel::Model
|
||||||
EMAIL_REGEX = /^[a-zA-Z0-9_-]+@[a-zA-Z0-9_\-.]+(\.[a-zA-Z0-9_-]+)+$/
|
EMAIL_REGEX = /^[a-zA-Z0-9_\-.]+@[a-zA-Z0-9_\-.]+(\.[a-zA-Z0-9_-]+)+$/
|
||||||
|
|
||||||
include ActiveModel::Model
|
include ActiveModel::Model
|
||||||
attr_accessor :username, :email, :password
|
attr_accessor :username, :email, :password
|
||||||
|
|
||||||
validates :username, presence: true
|
validates :username, presence: true
|
||||||
# validates :email, presence: true, format: { with: EMAIL_REGEX, multiline: true }
|
validates :email, presence: true, format: { with: EMAIL_REGEX, multiline: true }
|
||||||
validates :email, presence: true
|
|
||||||
|
|
||||||
validates :password, presence: true
|
validates :password, presence: true
|
||||||
|
|
||||||
# validate :check_username, :check_email
|
validate :check_username, :check_email
|
||||||
|
|
||||||
attr_reader :record
|
attr_reader :record
|
||||||
|
|
||||||
|
|
|
@ -26,10 +26,6 @@ module Gitea
|
||||||
render_result(response)
|
render_result(response)
|
||||||
rescue Exception => exception
|
rescue Exception => exception
|
||||||
Rails.logger.info "Exception ===========> #{exception.message}"
|
Rails.logger.info "Exception ===========> #{exception.message}"
|
||||||
failed_dic = "public/sync_failed_users.dic"
|
|
||||||
File.open(failed_dic,"a") do |file|
|
|
||||||
file.puts "user_info---#{params},errors--#{exception.message}"
|
|
||||||
end
|
|
||||||
fail!(exception.message)
|
fail!(exception.message)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -17,6 +17,7 @@ class SyncForgeJob < ApplicationJob
|
||||||
if new_user.present?
|
if new_user.present?
|
||||||
ActiveRecord::Base.transaction do
|
ActiveRecord::Base.transaction do
|
||||||
begin
|
begin
|
||||||
|
user_params = user_params["user"] if old_version_source.include?(platform)
|
||||||
Watcher&.where(user_id: user_params["id"]).update_all(user_id: new_user.id)
|
Watcher&.where(user_id: user_params["id"]).update_all(user_id: new_user.id)
|
||||||
ProjectTrend&.where(user_id: user_params["id"]).update_all(user_id: new_user.id)
|
ProjectTrend&.where(user_id: user_params["id"]).update_all(user_id: new_user.id)
|
||||||
sync_roles(roles_params, platform)
|
sync_roles(roles_params, platform)
|
||||||
|
@ -55,56 +56,68 @@ class SyncForgeJob < ApplicationJob
|
||||||
private
|
private
|
||||||
|
|
||||||
def sync_user(owner_params,owner_extension_params,platform)
|
def sync_user(owner_params,owner_extension_params,platform)
|
||||||
Rails.logger.info("#######______sync_user_start__########")
|
ActiveRecord::Base.transaction do
|
||||||
keys_other_delete = %w(id created_at updated_at user_id)
|
begin
|
||||||
keys_to_delete = %w(id created_on updated_on platform)
|
Rails.logger.info("#######______sync_user_start__########")
|
||||||
owner_params = owner_params["user"] if old_version_source.include?(platform) #trustie上需要
|
keys_other_delete = %w(id created_at updated_at user_id)
|
||||||
|
keys_to_delete = %w(id created_on updated_on platform)
|
||||||
|
owner_params = owner_params["user"] if old_version_source.include?(platform) #trustie上需要
|
||||||
|
|
||||||
owner_params = owner_params&.except!(*keys_to_delete)
|
owner_params = owner_params&.except!(*keys_to_delete)
|
||||||
user_password = random_password
|
user_password = random_password
|
||||||
new_user = []
|
new_user = []
|
||||||
if owner_params.present?
|
if owner_params.present?
|
||||||
if User.exists?(login: owner_params["login"])
|
if User.exists?(login: owner_params["login"])
|
||||||
new_user = User.find_by(login: owner_params["login"])
|
new_user = User.find_by(login: owner_params["login"])
|
||||||
elsif User.exists?(mail: owner_params["mail"])
|
elsif User.exists?(mail: owner_params["mail"])
|
||||||
new_user = User.find_by(mail: owner_params["mail"])
|
new_user = User.find_by(mail: owner_params["mail"])
|
||||||
else
|
|
||||||
new_user = User.new(owner_params.merge(platform: platform))
|
|
||||||
new_user.save(:validate => false)
|
|
||||||
|
|
||||||
interactor = Gitea::RegisterInteractor.call({username: owner_params["login"], email: owner_params["mail"], password: user_password})
|
|
||||||
if interactor.success?
|
|
||||||
gitea_user = interactor.result
|
|
||||||
gitea_uid = gitea_user['id']
|
|
||||||
# new_user.gitea_uid = gitea_user['id']
|
|
||||||
else
|
|
||||||
response = Gitea::User::GetTokenService.new("#{owner_params["login"]}").call
|
|
||||||
if response.status == 200
|
|
||||||
gitea_uid = JSON.parse(response.body)["id"]
|
|
||||||
# new_user.gitea_uid = user_id
|
|
||||||
else
|
else
|
||||||
gitea_uid = ""
|
new_user = User.new(owner_params.merge(platform: platform))
|
||||||
end
|
new_user.save(:validate => false)
|
||||||
end
|
|
||||||
result = Gitea::User::GenerateTokenService.new(owner_params["login"], user_password).call
|
|
||||||
if result != 401
|
|
||||||
gitea_token = result.result['sha1']
|
|
||||||
# new_user.gitea_token = result.result['sha1']
|
|
||||||
else
|
|
||||||
gitea_token = ""
|
|
||||||
end
|
|
||||||
new_user.update_attributes(gitea_uid: gitea_uid, gitea_token: gitea_token)
|
|
||||||
|
|
||||||
if owner_extension_params.present?
|
interactor = Gitea::RegisterInteractor.call({username: owner_params["login"], email: owner_params["mail"], password: user_password})
|
||||||
owner_extension_params = owner_extension_params["user_extensions"] if old_version_source.include?(platform) #trustie上需要
|
|
||||||
owner_extension_params = owner_extension_params&.except!(*keys_other_delete).merge(user_id: new_user.id)
|
if interactor.success?
|
||||||
UserExtension.create!(owner_extension_params)
|
gitea_user = interactor.result
|
||||||
|
gitea_uid = gitea_user['id']
|
||||||
|
# new_user.gitea_uid = gitea_user['id']
|
||||||
|
else
|
||||||
|
response = Gitea::User::GetTokenService.new("#{owner_params["login"]}").call
|
||||||
|
if response.status == 200
|
||||||
|
gitea_uid = JSON.parse(response.body)["id"]
|
||||||
|
# new_user.gitea_uid = user_id
|
||||||
|
else
|
||||||
|
gitea_uid = ""
|
||||||
|
end
|
||||||
|
end
|
||||||
|
result = Gitea::User::GenerateTokenService.new(owner_params["login"], user_password).call
|
||||||
|
if result != 401
|
||||||
|
gitea_token = result.result['sha1']
|
||||||
|
# new_user.gitea_token = result.result['sha1']
|
||||||
|
else
|
||||||
|
gitea_token = ""
|
||||||
|
end
|
||||||
|
new_user.update_attributes(gitea_uid: gitea_uid, gitea_token: gitea_token)
|
||||||
|
|
||||||
|
if owner_extension_params.present?
|
||||||
|
owner_extension_params = owner_extension_params["user_extensions"] if old_version_source.include?(platform) #trustie上需要
|
||||||
|
owner_extension_params = owner_extension_params&.except!(*keys_other_delete).merge(user_id: new_user.id)
|
||||||
|
UserExtension.create!(owner_extension_params)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
Rails.logger.info("#######______sync_user_end__########")
|
||||||
|
end
|
||||||
|
|
||||||
|
new_user
|
||||||
|
|
||||||
|
rescue Exception => e
|
||||||
|
failed_dic = "public/sync_failed_users.dic"
|
||||||
|
File.open(failed_dic,"a") do |file|
|
||||||
|
file.puts "user_info---#{owner_params},errors--#{e}"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
Rails.logger.info("#######______sync_user_end__########")
|
|
||||||
end
|
end
|
||||||
|
|
||||||
new_user
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def random_password
|
def random_password
|
||||||
|
|
Loading…
Reference in New Issue