mod actions: record the subject of the mod action.
Add a polymorphic `subject` field that records the subject of the mod action. The subject is the post, user, comment, artist, etc the mod action is for. * The subject for the user ban and unban actions is the user, not the ban itself. * The subject for the user feedback update and deletion actions is the user, not the feedback itself. * The subject for the post undeletion action is the post, not the approval itself. * The subject for the move favorites action is the source post where the favorites were moved from, not the destination post where the favorites were moved to. * The subject for the post permanent delete action is nil, because the post itself is hard deleted. * When a post is permanently deleted, all mod actions related to the post are deleted as well.
This commit is contained in:
@@ -42,7 +42,7 @@ class UserDeletion
|
||||
private
|
||||
|
||||
def create_mod_action
|
||||
ModAction.log("deleted user ##{user.id}", :user_delete, deleter)
|
||||
ModAction.log("deleted user ##{user.id}", :user_delete, subject: user, user: deleter)
|
||||
end
|
||||
|
||||
def create_user_event
|
||||
|
||||
@@ -42,21 +42,21 @@ class UserPromotion
|
||||
|
||||
def create_mod_actions
|
||||
if old_can_approve_posts == false && user.can_approve_posts? == true
|
||||
ModAction.log("granted approval privileges to \"#{user.name}\":#{Routes.user_path(user)}", :user_approval_privilege, promoter)
|
||||
ModAction.log("granted approval privileges to \"#{user.name}\":#{Routes.user_path(user)}", :user_approval_privilege, subject: user, user: promoter)
|
||||
elsif old_can_approve_posts == true && user.can_approve_posts? == false
|
||||
ModAction.log("removed approval privileges from \"#{user.name}\":#{Routes.user_path(user)}", :user_approval_privilege, promoter)
|
||||
ModAction.log("removed approval privileges from \"#{user.name}\":#{Routes.user_path(user)}", :user_approval_privilege, subject: user, user: promoter)
|
||||
end
|
||||
|
||||
if old_can_upload_free == false && user.can_upload_free? == true
|
||||
ModAction.log("granted unlimited upload privileges to \"#{user.name}\":#{Routes.user_path(user)}", :user_upload_privilege, promoter)
|
||||
ModAction.log("granted unlimited upload privileges to \"#{user.name}\":#{Routes.user_path(user)}", :user_upload_privilege, subject: user, user: promoter)
|
||||
elsif old_can_upload_free == false && user.can_upload_free? == true
|
||||
ModAction.log("removed unlimited upload privileges from \"#{user.name}\":#{Routes.user_path(user)}", :user_upload_privilege, promoter)
|
||||
ModAction.log("removed unlimited upload privileges from \"#{user.name}\":#{Routes.user_path(user)}", :user_upload_privilege, subject: user, user: promoter)
|
||||
end
|
||||
|
||||
if user.level_changed? && user.level >= user.level_was
|
||||
ModAction.log(%{promoted "#{user.name}":#{Routes.user_path(user)} from #{user.level_string_was} to #{user.level_string}}, :user_level_change, promoter)
|
||||
ModAction.log(%{promoted "#{user.name}":#{Routes.user_path(user)} from #{user.level_string_was} to #{user.level_string}}, :user_level_change, subject: user, user: promoter)
|
||||
elsif user.level_changed? && user.level < user.level_was
|
||||
ModAction.log(%{demoted "#{user.name}":#{Routes.user_path(user)} from #{user.level_string_was} to #{user.level_string}}, :user_level_change, promoter)
|
||||
ModAction.log(%{demoted "#{user.name}":#{Routes.user_path(user)} from #{user.level_string_was} to #{user.level_string}}, :user_level_change, subject: user, user: promoter)
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user