mirror of
https://github.com/discourse/discourse.git
synced 2025-02-25 18:55:32 -06:00
DEV: Apply syntax_tree formatting to app/*
This commit is contained in:
@@ -33,23 +33,35 @@ class UserMerger
|
||||
def update_username
|
||||
return if @source_user.username == @target_user.username
|
||||
|
||||
::MessageBus.publish '/merge_user', { message: I18n.t("admin.user.merge_user.updating_username") }, user_ids: [@acting_user.id] if @acting_user
|
||||
UsernameChanger.update_username(user_id: @source_user.id,
|
||||
old_username: @source_user.username,
|
||||
new_username: @target_user.username,
|
||||
avatar_template: @target_user.avatar_template,
|
||||
asynchronous: false)
|
||||
if @acting_user
|
||||
::MessageBus.publish "/merge_user",
|
||||
{ message: I18n.t("admin.user.merge_user.updating_username") },
|
||||
user_ids: [@acting_user.id]
|
||||
end
|
||||
UsernameChanger.update_username(
|
||||
user_id: @source_user.id,
|
||||
old_username: @source_user.username,
|
||||
new_username: @target_user.username,
|
||||
avatar_template: @target_user.avatar_template,
|
||||
asynchronous: false,
|
||||
)
|
||||
end
|
||||
|
||||
def move_posts
|
||||
posts = Post.with_deleted
|
||||
.where(user_id: @source_user.id)
|
||||
.order(:topic_id, :post_number)
|
||||
.pluck(:topic_id, :id)
|
||||
posts =
|
||||
Post
|
||||
.with_deleted
|
||||
.where(user_id: @source_user.id)
|
||||
.order(:topic_id, :post_number)
|
||||
.pluck(:topic_id, :id)
|
||||
|
||||
return if posts.count == 0
|
||||
|
||||
::MessageBus.publish '/merge_user', { message: I18n.t("admin.user.merge_user.changing_post_ownership") }, user_ids: [@acting_user.id] if @acting_user
|
||||
if @acting_user
|
||||
::MessageBus.publish "/merge_user",
|
||||
{ message: I18n.t("admin.user.merge_user.changing_post_ownership") },
|
||||
user_ids: [@acting_user.id]
|
||||
end
|
||||
|
||||
last_topic_id = nil
|
||||
post_ids = []
|
||||
@@ -73,12 +85,16 @@ class UserMerger
|
||||
post_ids: post_ids,
|
||||
new_owner: @target_user,
|
||||
acting_user: Discourse.system_user,
|
||||
skip_revision: true
|
||||
skip_revision: true,
|
||||
).change_owner!
|
||||
end
|
||||
|
||||
def merge_given_daily_likes
|
||||
::MessageBus.publish '/merge_user', { message: I18n.t("admin.user.merge_user.merging_given_daily_likes") }, user_ids: [@acting_user.id] if @acting_user
|
||||
if @acting_user
|
||||
::MessageBus.publish "/merge_user",
|
||||
{ message: I18n.t("admin.user.merge_user.merging_given_daily_likes") },
|
||||
user_ids: [@acting_user.id]
|
||||
end
|
||||
|
||||
sql = <<~SQL
|
||||
INSERT INTO given_daily_likes AS g (user_id, likes_given, given_date, limit_reached)
|
||||
@@ -107,15 +123,21 @@ class UserMerger
|
||||
source_user_id: @source_user.id,
|
||||
target_user_id: @target_user.id,
|
||||
max_likes_per_day: SiteSetting.max_likes_per_day,
|
||||
action_type_id: PostActionType.types[:like]
|
||||
action_type_id: PostActionType.types[:like],
|
||||
)
|
||||
end
|
||||
|
||||
def merge_post_timings
|
||||
::MessageBus.publish '/merge_user', { message: I18n.t("admin.user.merge_user.merging_post_timings") }, user_ids: [@acting_user.id] if @acting_user
|
||||
if @acting_user
|
||||
::MessageBus.publish "/merge_user",
|
||||
{ message: I18n.t("admin.user.merge_user.merging_post_timings") },
|
||||
user_ids: [@acting_user.id]
|
||||
end
|
||||
|
||||
update_user_id(:post_timings, conditions: ["x.topic_id = y.topic_id",
|
||||
"x.post_number = y.post_number"])
|
||||
update_user_id(
|
||||
:post_timings,
|
||||
conditions: ["x.topic_id = y.topic_id", "x.post_number = y.post_number"],
|
||||
)
|
||||
sql = <<~SQL
|
||||
UPDATE post_timings AS t
|
||||
SET msecs = LEAST(t.msecs::bigint + s.msecs, 2^31 - 1)
|
||||
@@ -128,7 +150,11 @@ class UserMerger
|
||||
end
|
||||
|
||||
def merge_user_visits
|
||||
::MessageBus.publish '/merge_user', { message: I18n.t("admin.user.merge_user.merging_user_visits") }, user_ids: [@acting_user.id] if @acting_user
|
||||
if @acting_user
|
||||
::MessageBus.publish "/merge_user",
|
||||
{ message: I18n.t("admin.user.merge_user.merging_user_visits") },
|
||||
user_ids: [@acting_user.id]
|
||||
end
|
||||
|
||||
update_user_id(:user_visits, conditions: "x.visited_at = y.visited_at")
|
||||
|
||||
@@ -146,17 +172,27 @@ class UserMerger
|
||||
end
|
||||
|
||||
def update_site_settings
|
||||
::MessageBus.publish '/merge_user', { message: I18n.t("admin.user.merge_user.updating_site_settings") }, user_ids: [@acting_user.id] if @acting_user
|
||||
|
||||
SiteSetting.all_settings(include_hidden: true).each do |setting|
|
||||
if setting[:type] == "username" && setting[:value] == @source_user.username
|
||||
SiteSetting.set_and_log(setting[:setting], @target_user.username)
|
||||
end
|
||||
if @acting_user
|
||||
::MessageBus.publish "/merge_user",
|
||||
{ message: I18n.t("admin.user.merge_user.updating_site_settings") },
|
||||
user_ids: [@acting_user.id]
|
||||
end
|
||||
|
||||
SiteSetting
|
||||
.all_settings(include_hidden: true)
|
||||
.each do |setting|
|
||||
if setting[:type] == "username" && setting[:value] == @source_user.username
|
||||
SiteSetting.set_and_log(setting[:setting], @target_user.username)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def update_user_stats
|
||||
::MessageBus.publish '/merge_user', { message: I18n.t("admin.user.merge_user.updating_user_stats") }, user_ids: [@acting_user.id] if @acting_user
|
||||
if @acting_user
|
||||
::MessageBus.publish "/merge_user",
|
||||
{ message: I18n.t("admin.user.merge_user.updating_user_stats") },
|
||||
user_ids: [@acting_user.id]
|
||||
end
|
||||
|
||||
# topics_entered
|
||||
DB.exec(<<~SQL, target_user_id: @target_user.id)
|
||||
@@ -212,7 +248,11 @@ class UserMerger
|
||||
end
|
||||
|
||||
def merge_user_attributes
|
||||
::MessageBus.publish '/merge_user', { message: I18n.t("admin.user.merge_user.merging_user_attributes") }, user_ids: [@acting_user.id] if @acting_user
|
||||
if @acting_user
|
||||
::MessageBus.publish "/merge_user",
|
||||
{ message: I18n.t("admin.user.merge_user.merging_user_attributes") },
|
||||
user_ids: [@acting_user.id]
|
||||
end
|
||||
|
||||
DB.exec(<<~SQL, source_user_id: @source_user.id, target_user_id: @target_user.id)
|
||||
UPDATE users AS t
|
||||
@@ -255,7 +295,11 @@ class UserMerger
|
||||
end
|
||||
|
||||
def update_user_ids
|
||||
::MessageBus.publish '/merge_user', { message: I18n.t("admin.user.merge_user.updating_user_ids") }, user_ids: [@acting_user.id] if @acting_user
|
||||
if @acting_user
|
||||
::MessageBus.publish "/merge_user",
|
||||
{ message: I18n.t("admin.user.merge_user.updating_user_ids") },
|
||||
user_ids: [@acting_user.id]
|
||||
end
|
||||
|
||||
Category.where(user_id: @source_user.id).update_all(user_id: @target_user.id)
|
||||
|
||||
@@ -278,23 +322,44 @@ class UserMerger
|
||||
IncomingEmail.where(user_id: @source_user.id).update_all(user_id: @target_user.id)
|
||||
|
||||
IncomingLink.where(user_id: @source_user.id).update_all(user_id: @target_user.id)
|
||||
IncomingLink.where(current_user_id: @source_user.id).update_all(current_user_id: @target_user.id)
|
||||
IncomingLink.where(current_user_id: @source_user.id).update_all(
|
||||
current_user_id: @target_user.id,
|
||||
)
|
||||
|
||||
InvitedUser.where(user_id: @source_user.id).update_all(user_id: @target_user.id)
|
||||
Invite.with_deleted.where(invited_by_id: @source_user.id).update_all(invited_by_id: @target_user.id)
|
||||
Invite.with_deleted.where(deleted_by_id: @source_user.id).update_all(deleted_by_id: @target_user.id)
|
||||
Invite
|
||||
.with_deleted
|
||||
.where(invited_by_id: @source_user.id)
|
||||
.update_all(invited_by_id: @target_user.id)
|
||||
Invite
|
||||
.with_deleted
|
||||
.where(deleted_by_id: @source_user.id)
|
||||
.update_all(deleted_by_id: @target_user.id)
|
||||
|
||||
update_user_id(:muted_users, conditions: "x.muted_user_id = y.muted_user_id")
|
||||
update_user_id(:muted_users, user_id_column_name: "muted_user_id", conditions: "x.user_id = y.user_id")
|
||||
update_user_id(
|
||||
:muted_users,
|
||||
user_id_column_name: "muted_user_id",
|
||||
conditions: "x.user_id = y.user_id",
|
||||
)
|
||||
|
||||
update_user_id(:ignored_users, conditions: "x.ignored_user_id = y.ignored_user_id")
|
||||
update_user_id(:ignored_users, user_id_column_name: "ignored_user_id", conditions: "x.user_id = y.user_id")
|
||||
update_user_id(
|
||||
:ignored_users,
|
||||
user_id_column_name: "ignored_user_id",
|
||||
conditions: "x.user_id = y.user_id",
|
||||
)
|
||||
|
||||
Notification.where(user_id: @source_user.id).update_all(user_id: @target_user.id)
|
||||
|
||||
update_user_id(:post_actions, conditions: ["x.post_id = y.post_id",
|
||||
"x.post_action_type_id = y.post_action_type_id",
|
||||
"x.targets_topic = y.targets_topic"])
|
||||
update_user_id(
|
||||
:post_actions,
|
||||
conditions: [
|
||||
"x.post_id = y.post_id",
|
||||
"x.post_action_type_id = y.post_action_type_id",
|
||||
"x.targets_topic = y.targets_topic",
|
||||
],
|
||||
)
|
||||
|
||||
PostAction.where(deleted_by_id: @source_user.id).update_all(deleted_by_id: @target_user.id)
|
||||
PostAction.where(deferred_by_id: @source_user.id).update_all(deferred_by_id: @target_user.id)
|
||||
@@ -303,13 +368,24 @@ class UserMerger
|
||||
|
||||
PostRevision.where(user_id: @source_user.id).update_all(user_id: @target_user.id)
|
||||
|
||||
Post.with_deleted.where(deleted_by_id: @source_user.id).update_all(deleted_by_id: @target_user.id)
|
||||
Post.with_deleted.where(last_editor_id: @source_user.id).update_all(last_editor_id: @target_user.id)
|
||||
Post
|
||||
.with_deleted
|
||||
.where(deleted_by_id: @source_user.id)
|
||||
.update_all(deleted_by_id: @target_user.id)
|
||||
Post
|
||||
.with_deleted
|
||||
.where(last_editor_id: @source_user.id)
|
||||
.update_all(last_editor_id: @target_user.id)
|
||||
Post.with_deleted.where(locked_by_id: @source_user.id).update_all(locked_by_id: @target_user.id)
|
||||
Post.with_deleted.where(reply_to_user_id: @source_user.id).update_all(reply_to_user_id: @target_user.id)
|
||||
Post
|
||||
.with_deleted
|
||||
.where(reply_to_user_id: @source_user.id)
|
||||
.update_all(reply_to_user_id: @target_user.id)
|
||||
|
||||
Reviewable.where(created_by_id: @source_user.id).update_all(created_by_id: @target_user.id)
|
||||
ReviewableHistory.where(created_by_id: @source_user.id).update_all(created_by_id: @target_user.id)
|
||||
ReviewableHistory.where(created_by_id: @source_user.id).update_all(
|
||||
created_by_id: @target_user.id,
|
||||
)
|
||||
|
||||
SearchLog.where(user_id: @source_user.id).update_all(user_id: @target_user.id)
|
||||
|
||||
@@ -319,22 +395,36 @@ class UserMerger
|
||||
|
||||
update_user_id(:topic_allowed_users, conditions: "x.topic_id = y.topic_id")
|
||||
|
||||
TopicEmbed.with_deleted.where(deleted_by_id: @source_user.id).update_all(deleted_by_id: @target_user.id)
|
||||
TopicEmbed
|
||||
.with_deleted
|
||||
.where(deleted_by_id: @source_user.id)
|
||||
.update_all(deleted_by_id: @target_user.id)
|
||||
|
||||
TopicLink.where(user_id: @source_user.id).update_all(user_id: @target_user.id)
|
||||
TopicLinkClick.where(user_id: @source_user.id).update_all(user_id: @target_user.id)
|
||||
|
||||
TopicTimer.with_deleted.where(deleted_by_id: @source_user.id).update_all(deleted_by_id: @target_user.id)
|
||||
TopicTimer
|
||||
.with_deleted
|
||||
.where(deleted_by_id: @source_user.id)
|
||||
.update_all(deleted_by_id: @target_user.id)
|
||||
|
||||
update_user_id(:topic_timers, conditions: ["x.status_type = y.status_type",
|
||||
"x.topic_id = y.topic_id",
|
||||
"y.deleted_at IS NULL"])
|
||||
update_user_id(
|
||||
:topic_timers,
|
||||
conditions: [
|
||||
"x.status_type = y.status_type",
|
||||
"x.topic_id = y.topic_id",
|
||||
"y.deleted_at IS NULL",
|
||||
],
|
||||
)
|
||||
|
||||
update_user_id(:topic_users, conditions: "x.topic_id = y.topic_id")
|
||||
|
||||
update_user_id(:topic_views, conditions: "x.topic_id = y.topic_id")
|
||||
|
||||
Topic.with_deleted.where(deleted_by_id: @source_user.id).update_all(deleted_by_id: @target_user.id)
|
||||
Topic
|
||||
.with_deleted
|
||||
.where(deleted_by_id: @source_user.id)
|
||||
.update_all(deleted_by_id: @target_user.id)
|
||||
|
||||
UnsubscribeKey.where(user_id: @source_user.id).update_all(user_id: @target_user.id)
|
||||
|
||||
@@ -342,29 +432,46 @@ class UserMerger
|
||||
|
||||
update_user_id(:user_archived_messages, conditions: "x.topic_id = y.topic_id")
|
||||
|
||||
update_user_id(:user_actions,
|
||||
user_id_column_name: "user_id",
|
||||
conditions: ["x.action_type = y.action_type",
|
||||
"x.target_topic_id IS NOT DISTINCT FROM y.target_topic_id",
|
||||
"x.target_post_id IS NOT DISTINCT FROM y.target_post_id",
|
||||
"(x.acting_user_id IN (:source_user_id, :target_user_id) OR x.acting_user_id IS NOT DISTINCT FROM y.acting_user_id)"])
|
||||
update_user_id(:user_actions,
|
||||
user_id_column_name: "acting_user_id",
|
||||
conditions: ["x.action_type = y.action_type",
|
||||
"x.user_id = y.user_id",
|
||||
"x.target_topic_id IS NOT DISTINCT FROM y.target_topic_id",
|
||||
"x.target_post_id IS NOT DISTINCT FROM y.target_post_id"])
|
||||
update_user_id(
|
||||
:user_actions,
|
||||
user_id_column_name: "user_id",
|
||||
conditions: [
|
||||
"x.action_type = y.action_type",
|
||||
"x.target_topic_id IS NOT DISTINCT FROM y.target_topic_id",
|
||||
"x.target_post_id IS NOT DISTINCT FROM y.target_post_id",
|
||||
"(x.acting_user_id IN (:source_user_id, :target_user_id) OR x.acting_user_id IS NOT DISTINCT FROM y.acting_user_id)",
|
||||
],
|
||||
)
|
||||
update_user_id(
|
||||
:user_actions,
|
||||
user_id_column_name: "acting_user_id",
|
||||
conditions: [
|
||||
"x.action_type = y.action_type",
|
||||
"x.user_id = y.user_id",
|
||||
"x.target_topic_id IS NOT DISTINCT FROM y.target_topic_id",
|
||||
"x.target_post_id IS NOT DISTINCT FROM y.target_post_id",
|
||||
],
|
||||
)
|
||||
|
||||
update_user_id(:user_badges, conditions: ["x.badge_id = y.badge_id",
|
||||
"x.seq = y.seq",
|
||||
"x.post_id IS NOT DISTINCT FROM y.post_id"])
|
||||
update_user_id(
|
||||
:user_badges,
|
||||
conditions: [
|
||||
"x.badge_id = y.badge_id",
|
||||
"x.seq = y.seq",
|
||||
"x.post_id IS NOT DISTINCT FROM y.post_id",
|
||||
],
|
||||
)
|
||||
|
||||
UserBadge.where(granted_by_id: @source_user.id).update_all(granted_by_id: @target_user.id)
|
||||
|
||||
update_user_id(:user_custom_fields, conditions: "x.name = y.name")
|
||||
|
||||
if @target_user.human?
|
||||
update_user_id(:user_emails, conditions: "x.email = y.email OR y.primary = false", updates: '"primary" = false')
|
||||
update_user_id(
|
||||
:user_emails,
|
||||
conditions: "x.email = y.email OR y.primary = false",
|
||||
updates: '"primary" = false',
|
||||
)
|
||||
end
|
||||
|
||||
UserExport.where(user_id: @source_user.id).update_all(user_id: @target_user.id)
|
||||
@@ -372,7 +479,9 @@ class UserMerger
|
||||
UserHistory.where(target_user_id: @source_user.id).update_all(target_user_id: @target_user.id)
|
||||
UserHistory.where(acting_user_id: @source_user.id).update_all(acting_user_id: @target_user.id)
|
||||
|
||||
UserProfileView.where(user_profile_id: @source_user.id).update_all(user_profile_id: @target_user.id)
|
||||
UserProfileView.where(user_profile_id: @source_user.id).update_all(
|
||||
user_profile_id: @target_user.id,
|
||||
)
|
||||
UserProfileView.where(user_id: @source_user.id).update_all(user_id: @target_user.id)
|
||||
|
||||
UserWarning.where(user_id: @source_user.id).update_all(user_id: @target_user.id)
|
||||
@@ -382,14 +491,18 @@ class UserMerger
|
||||
end
|
||||
|
||||
def delete_source_user
|
||||
::MessageBus.publish '/merge_user', { message: I18n.t("admin.user.merge_user.deleting_source_user") }, user_ids: [@acting_user.id] if @acting_user
|
||||
if @acting_user
|
||||
::MessageBus.publish "/merge_user",
|
||||
{ message: I18n.t("admin.user.merge_user.deleting_source_user") },
|
||||
user_ids: [@acting_user.id]
|
||||
end
|
||||
|
||||
@source_user.reload
|
||||
|
||||
@source_user.skip_email_validation = true
|
||||
@source_user.update(
|
||||
admin: false,
|
||||
email: "#{@source_user.username}_#{SecureRandom.hex}@no-email.invalid"
|
||||
email: "#{@source_user.username}_#{SecureRandom.hex}@no-email.invalid",
|
||||
)
|
||||
|
||||
UserDestroyer.new(Discourse.system_user).destroy(@source_user, quiet: true)
|
||||
|
||||
Reference in New Issue
Block a user