mirror of
https://github.com/philomena-dev/philomena.git
synced 2025-04-05 02:59:40 +02:00
More mod logs
This commit is contained in:
parent
8af67ab63a
commit
2f57221fb8
33 changed files with 186 additions and 37 deletions
lib/philomena_web/controllers
admin
image
anonymous_controller.ex
comment
comment_lock_controller.exdelete_controller.exdescription_lock_controller.exdestroy_controller.exfeature_controller.exfile_controller.exhash_controller.exrepair_controller.exscratchpad_controller.exsource_history_controller.extag_change_controller.extag_lock_controller.extamper_controller.extag
tag_change
|
@ -19,9 +19,10 @@ defmodule PhilomenaWeb.Admin.Advert.ImageController do
|
|||
|
||||
def update(conn, %{"advert" => advert_params}) do
|
||||
case Adverts.update_advert_image(conn.assigns.advert, advert_params) do
|
||||
{:ok, _advert} ->
|
||||
{:ok, advert} ->
|
||||
conn
|
||||
|> put_flash(:info, "Advert was successfully updated.")
|
||||
|> moderation_log(details: &log_details/2, data: advert)
|
||||
|> redirect(to: ~p"/admin/adverts")
|
||||
|
||||
{:error, changeset} ->
|
||||
|
@ -35,4 +36,8 @@ defmodule PhilomenaWeb.Admin.Advert.ImageController do
|
|||
_false -> PhilomenaWeb.NotAuthorizedPlug.call(conn)
|
||||
end
|
||||
end
|
||||
|
||||
defp log_details(_action, advert) do
|
||||
%{body: "Updated image for advert #{advert.id}", subject_path: ~p"/admin/adverts"}
|
||||
end
|
||||
end
|
||||
|
|
|
@ -29,9 +29,10 @@ defmodule PhilomenaWeb.Admin.AdvertController do
|
|||
|
||||
def create(conn, %{"advert" => advert_params}) do
|
||||
case Adverts.create_advert(advert_params) do
|
||||
{:ok, _advert} ->
|
||||
{:ok, advert} ->
|
||||
conn
|
||||
|> put_flash(:info, "Advert was successfully created.")
|
||||
|> moderation_log(details: &log_details/2, data: advert)
|
||||
|> redirect(to: ~p"/admin/adverts")
|
||||
|
||||
{:error, changeset} ->
|
||||
|
@ -46,9 +47,10 @@ defmodule PhilomenaWeb.Admin.AdvertController do
|
|||
|
||||
def update(conn, %{"advert" => advert_params}) do
|
||||
case Adverts.update_advert(conn.assigns.advert, advert_params) do
|
||||
{:ok, _advert} ->
|
||||
{:ok, advert} ->
|
||||
conn
|
||||
|> put_flash(:info, "Advert was successfully updated.")
|
||||
|> moderation_log(details: &log_details/2, data: advert)
|
||||
|> redirect(to: ~p"/admin/adverts")
|
||||
|
||||
{:error, changeset} ->
|
||||
|
@ -57,10 +59,11 @@ defmodule PhilomenaWeb.Admin.AdvertController do
|
|||
end
|
||||
|
||||
def delete(conn, _params) do
|
||||
{:ok, _advert} = Adverts.delete_advert(conn.assigns.advert)
|
||||
{:ok, advert} = Adverts.delete_advert(conn.assigns.advert)
|
||||
|
||||
conn
|
||||
|> put_flash(:info, "Advert was successfully deleted.")
|
||||
|> moderation_log(details: &log_details/2, data: advert)
|
||||
|> redirect(to: ~p"/admin/adverts")
|
||||
end
|
||||
|
||||
|
@ -70,4 +73,15 @@ defmodule PhilomenaWeb.Admin.AdvertController do
|
|||
false -> PhilomenaWeb.NotAuthorizedPlug.call(conn)
|
||||
end
|
||||
end
|
||||
|
||||
defp log_details(action, advert) do
|
||||
body =
|
||||
case action do
|
||||
:create -> "Created advert #{advert.id}"
|
||||
:update -> "Updated advert #{advert.id}"
|
||||
:delete -> "Deleted advert #{advert.id}"
|
||||
end
|
||||
|
||||
%{body: body, subject_path: ~p"/admin/adverts"}
|
||||
end
|
||||
end
|
||||
|
|
|
@ -14,9 +14,10 @@ defmodule PhilomenaWeb.Admin.Badge.ImageController do
|
|||
|
||||
def update(conn, %{"badge" => badge_params}) do
|
||||
case Badges.update_badge_image(conn.assigns.badge, badge_params) do
|
||||
{:ok, _badge} ->
|
||||
{:ok, badge} ->
|
||||
conn
|
||||
|> put_flash(:info, "Badge updated successfully.")
|
||||
|> moderation_log(details: &log_details/2, data: badge)
|
||||
|> redirect(to: ~p"/admin/badges")
|
||||
|
||||
{:error, :badge, changeset, _changes} ->
|
||||
|
@ -30,4 +31,8 @@ defmodule PhilomenaWeb.Admin.Badge.ImageController do
|
|||
_false -> PhilomenaWeb.NotAuthorizedPlug.call(conn)
|
||||
end
|
||||
end
|
||||
|
||||
defp log_details(_action, badge) do
|
||||
%{body: "Updated image of badge '#{badge.title}'", subject_path: ~p"/admin/badges"}
|
||||
end
|
||||
end
|
||||
|
|
|
@ -25,9 +25,10 @@ defmodule PhilomenaWeb.Admin.BadgeController do
|
|||
|
||||
def create(conn, %{"badge" => badge_params}) do
|
||||
case Badges.create_badge(badge_params) do
|
||||
{:ok, _badge} ->
|
||||
{:ok, badge} ->
|
||||
conn
|
||||
|> put_flash(:info, "Badge created successfully.")
|
||||
|> moderation_log(details: &log_details/2, data: badge)
|
||||
|> redirect(to: ~p"/admin/badges")
|
||||
|
||||
{:error, :badge, changeset, _changes} ->
|
||||
|
@ -42,9 +43,10 @@ defmodule PhilomenaWeb.Admin.BadgeController do
|
|||
|
||||
def update(conn, %{"badge" => badge_params}) do
|
||||
case Badges.update_badge(conn.assigns.badge, badge_params) do
|
||||
{:ok, _badge} ->
|
||||
{:ok, badge} ->
|
||||
conn
|
||||
|> put_flash(:info, "Badge updated successfully.")
|
||||
|> moderation_log(details: &log_details/2, data: badge)
|
||||
|> redirect(to: ~p"/admin/badges")
|
||||
|
||||
{:error, :badge, changeset, _changes} ->
|
||||
|
@ -58,4 +60,14 @@ defmodule PhilomenaWeb.Admin.BadgeController do
|
|||
_false -> PhilomenaWeb.NotAuthorizedPlug.call(conn)
|
||||
end
|
||||
end
|
||||
|
||||
defp log_details(action, badge) do
|
||||
body =
|
||||
case action do
|
||||
:create -> "Created badge '#{badge.title}'"
|
||||
:update -> "Updated badge '#{badge.title}'"
|
||||
end
|
||||
|
||||
%{body: body, subject_path: ~p"/admin/badges"}
|
||||
end
|
||||
end
|
||||
|
|
|
@ -12,6 +12,7 @@ defmodule PhilomenaWeb.Admin.User.ActivationController do
|
|||
|
||||
conn
|
||||
|> put_flash(:info, "User was reactivated.")
|
||||
|> moderation_log(details: &log_details/2, data: user)
|
||||
|> redirect(to: ~p"/profiles/#{user}")
|
||||
end
|
||||
|
||||
|
@ -20,6 +21,7 @@ defmodule PhilomenaWeb.Admin.User.ActivationController do
|
|||
|
||||
conn
|
||||
|> put_flash(:info, "User was deactivated.")
|
||||
|> moderation_log(details: &log_details/2, data: user)
|
||||
|> redirect(to: ~p"/profiles/#{user}")
|
||||
end
|
||||
|
||||
|
@ -29,4 +31,14 @@ defmodule PhilomenaWeb.Admin.User.ActivationController do
|
|||
_false -> PhilomenaWeb.NotAuthorizedPlug.call(conn)
|
||||
end
|
||||
end
|
||||
|
||||
defp log_details(action, user) do
|
||||
body =
|
||||
case action do
|
||||
:create -> "Reactivated #{user.name}"
|
||||
:delete -> "Deactivated #{user.name}"
|
||||
end
|
||||
|
||||
%{body: body, subject_path: ~p"/profiles/#{user}"}
|
||||
end
|
||||
end
|
||||
|
|
|
@ -12,6 +12,7 @@ defmodule PhilomenaWeb.Admin.User.ApiKeyController do
|
|||
|
||||
conn
|
||||
|> put_flash(:info, "API token successfully reset.")
|
||||
|> moderation_log(details: &log_details/2, data: user)
|
||||
|> redirect(to: ~p"/profiles/#{user}")
|
||||
end
|
||||
|
||||
|
@ -21,4 +22,8 @@ defmodule PhilomenaWeb.Admin.User.ApiKeyController do
|
|||
_false -> PhilomenaWeb.NotAuthorizedPlug.call(conn)
|
||||
end
|
||||
end
|
||||
|
||||
defp log_details(_action, user) do
|
||||
%{body: "Reset API key for #{user.name}", subject_path: ~p"/profiles/#{user}"}
|
||||
end
|
||||
end
|
||||
|
|
|
@ -8,10 +8,11 @@ defmodule PhilomenaWeb.Admin.User.AvatarController do
|
|||
plug :load_resource, model: User, id_name: "user_id", id_field: "slug", persisted: true
|
||||
|
||||
def delete(conn, _params) do
|
||||
{:ok, _user} = Users.remove_avatar(conn.assigns.user)
|
||||
{:ok, user} = Users.remove_avatar(conn.assigns.user)
|
||||
|
||||
conn
|
||||
|> put_flash(:info, "Successfully removed avatar.")
|
||||
|> moderation_log(details: &log_details/2, data: user)
|
||||
|> redirect(to: ~p"/admin/users/#{conn.assigns.user}/edit")
|
||||
end
|
||||
|
||||
|
@ -21,4 +22,8 @@ defmodule PhilomenaWeb.Admin.User.AvatarController do
|
|||
_false -> PhilomenaWeb.NotAuthorizedPlug.call(conn)
|
||||
end
|
||||
end
|
||||
|
||||
defp log_details(_action, user) do
|
||||
%{body: "Removed avatar for #{user.name}", subject_path: ~p"/profiles/#{user}"}
|
||||
end
|
||||
end
|
||||
|
|
|
@ -8,11 +8,14 @@ defmodule PhilomenaWeb.Admin.User.DownvoteController do
|
|||
plug :load_resource, model: User, id_name: "user_id", id_field: "slug", persisted: true
|
||||
|
||||
def delete(conn, _params) do
|
||||
Exq.enqueue(Exq, "indexing", UserUnvoteWorker, [conn.assigns.user.id, false])
|
||||
user = conn.assigns.user
|
||||
|
||||
Exq.enqueue(Exq, "indexing", UserUnvoteWorker, [user.id, false])
|
||||
|
||||
conn
|
||||
|> put_flash(:info, "Downvote wipe started.")
|
||||
|> redirect(to: ~p"/profiles/#{conn.assigns.user}")
|
||||
|> moderation_log(details: &log_details/2, data: user)
|
||||
|> redirect(to: ~p"/profiles/#{user}")
|
||||
end
|
||||
|
||||
defp verify_authorized(conn, _opts) do
|
||||
|
@ -21,4 +24,8 @@ defmodule PhilomenaWeb.Admin.User.DownvoteController do
|
|||
_false -> PhilomenaWeb.NotAuthorizedPlug.call(conn)
|
||||
end
|
||||
end
|
||||
|
||||
defp log_details(_action, user) do
|
||||
%{body: "Wiped downvotes for #{user.name}", subject_path: ~p"/profiles/#{user}"}
|
||||
end
|
||||
end
|
||||
|
|
|
@ -26,6 +26,7 @@ defmodule PhilomenaWeb.Admin.User.EraseController do
|
|||
|
||||
conn
|
||||
|> put_flash(:info, "User erase started")
|
||||
|> moderation_log(details: &log_details/2, data: {conn.assigns.user, user})
|
||||
|> redirect(to: ~p"/profiles/#{user}")
|
||||
end
|
||||
|
||||
|
@ -68,4 +69,8 @@ defmodule PhilomenaWeb.Admin.User.EraseController do
|
|||
conn
|
||||
end
|
||||
end
|
||||
|
||||
defp log_details(_action, {old_user, new_user}) do
|
||||
%{body: "Erased #{old_user.name}", subject_path: ~p"/profiles/#{new_user}"}
|
||||
end
|
||||
end
|
||||
|
|
|
@ -18,6 +18,7 @@ defmodule PhilomenaWeb.Admin.User.ForceFilterController do
|
|||
|
||||
conn
|
||||
|> put_flash(:info, "Filter was forced.")
|
||||
|> moderation_log(details: &log_details/2, data: user)
|
||||
|> redirect(to: ~p"/profiles/#{user}")
|
||||
end
|
||||
|
||||
|
@ -26,6 +27,7 @@ defmodule PhilomenaWeb.Admin.User.ForceFilterController do
|
|||
|
||||
conn
|
||||
|> put_flash(:info, "Forced filter was removed.")
|
||||
|> moderation_log(details: &log_details/2, data: user)
|
||||
|> redirect(to: ~p"/profiles/#{user}")
|
||||
end
|
||||
|
||||
|
@ -35,4 +37,14 @@ defmodule PhilomenaWeb.Admin.User.ForceFilterController do
|
|||
_false -> PhilomenaWeb.NotAuthorizedPlug.call(conn)
|
||||
end
|
||||
end
|
||||
|
||||
defp log_details(action, user) do
|
||||
body =
|
||||
case action do
|
||||
:create -> "Forced filter #{user.forced_filter_id} for #{user.name}"
|
||||
:delete -> "Removed forced filter for #{user.name}"
|
||||
end
|
||||
|
||||
%{body: body, subject_path: ~p"/profiles/#{user}"}
|
||||
end
|
||||
end
|
||||
|
|
|
@ -12,6 +12,7 @@ defmodule PhilomenaWeb.Admin.User.UnlockController do
|
|||
|
||||
conn
|
||||
|> put_flash(:info, "User was unlocked.")
|
||||
|> moderation_log(details: &log_details/2, data: user)
|
||||
|> redirect(to: ~p"/profiles/#{user}")
|
||||
end
|
||||
|
||||
|
@ -21,4 +22,8 @@ defmodule PhilomenaWeb.Admin.User.UnlockController do
|
|||
_false -> PhilomenaWeb.NotAuthorizedPlug.call(conn)
|
||||
end
|
||||
end
|
||||
|
||||
defp log_details(_action, user) do
|
||||
%{body: "Unlocked #{user.name}", subject_path: ~p"/profiles/#{user}"}
|
||||
end
|
||||
end
|
||||
|
|
|
@ -8,11 +8,14 @@ defmodule PhilomenaWeb.Admin.User.VoteController do
|
|||
plug :load_resource, model: User, id_name: "user_id", id_field: "slug", persisted: true
|
||||
|
||||
def delete(conn, _params) do
|
||||
Exq.enqueue(Exq, "indexing", UserUnvoteWorker, [conn.assigns.user.id, true])
|
||||
user = conn.assigns.user
|
||||
|
||||
Exq.enqueue(Exq, "indexing", UserUnvoteWorker, [user.id, true])
|
||||
|
||||
conn
|
||||
|> put_flash(:info, "Vote and fave wipe started.")
|
||||
|> redirect(to: ~p"/profiles/#{conn.assigns.user}")
|
||||
|> moderation_log(details: &log_details/2, data: user)
|
||||
|> redirect(to: ~p"/profiles/#{user}")
|
||||
end
|
||||
|
||||
defp verify_authorized(conn, _opts) do
|
||||
|
@ -21,4 +24,8 @@ defmodule PhilomenaWeb.Admin.User.VoteController do
|
|||
_false -> PhilomenaWeb.NotAuthorizedPlug.call(conn)
|
||||
end
|
||||
end
|
||||
|
||||
defp log_details(_action, user) do
|
||||
%{body: "Wiped votes and faves for #{user.name}", subject_path: ~p"/profiles/#{user}"}
|
||||
end
|
||||
end
|
||||
|
|
|
@ -8,14 +8,17 @@ defmodule PhilomenaWeb.Admin.User.WipeController do
|
|||
plug :load_resource, model: User, id_name: "user_id", id_field: "slug", persisted: true
|
||||
|
||||
def create(conn, _params) do
|
||||
Exq.enqueue(Exq, "indexing", UserWipeWorker, [conn.assigns.user.id])
|
||||
user = conn.assigns.user
|
||||
|
||||
Exq.enqueue(Exq, "indexing", UserWipeWorker, [user.id])
|
||||
|
||||
conn
|
||||
|> put_flash(
|
||||
:info,
|
||||
"PII wipe queued, please verify and then deactivate the account as necessary."
|
||||
)
|
||||
|> redirect(to: ~p"/profiles/#{conn.assigns.user}")
|
||||
|> moderation_log(details: &log_details/2, data: user)
|
||||
|> redirect(to: ~p"/profiles/#{user}")
|
||||
end
|
||||
|
||||
defp verify_authorized(conn, _opts) do
|
||||
|
@ -24,4 +27,8 @@ defmodule PhilomenaWeb.Admin.User.WipeController do
|
|||
_false -> PhilomenaWeb.NotAuthorizedPlug.call(conn)
|
||||
end
|
||||
end
|
||||
|
||||
defp log_details(_action, user) do
|
||||
%{body: "Wiped PII for #{user.name}", subject_path: ~p"/profiles/#{user}"}
|
||||
end
|
||||
end
|
||||
|
|
|
@ -35,7 +35,7 @@ defmodule PhilomenaWeb.Image.AnonymousController do
|
|||
|
||||
defp log_details(_action, image) do
|
||||
%{
|
||||
body: "Updated anonymity of image >>#{image.id}",
|
||||
body: "Updated anonymity of image #{image.id}",
|
||||
subject_path: ~p"/images/#{image}"
|
||||
}
|
||||
end
|
||||
|
|
|
@ -28,7 +28,7 @@ defmodule PhilomenaWeb.Image.Comment.ApproveController do
|
|||
|
||||
defp log_details(_action, comment) do
|
||||
%{
|
||||
body: "Approved comment on image >>#{comment.image_id}",
|
||||
body: "Approved comment on image #{comment.image_id}",
|
||||
subject_path: ~p"/images/#{comment.image_id}" <> "#comment_#{comment.id}"
|
||||
}
|
||||
end
|
||||
|
|
|
@ -28,7 +28,7 @@ defmodule PhilomenaWeb.Image.Comment.DeleteController do
|
|||
|
||||
defp log_details(_action, comment) do
|
||||
%{
|
||||
body: "Destroyed comment on image >>#{comment.image_id}",
|
||||
body: "Destroyed comment on image #{comment.image_id}",
|
||||
subject_path: ~p"/images/#{comment.image_id}" <> "#comment_#{comment.id}"
|
||||
}
|
||||
end
|
||||
|
|
|
@ -45,8 +45,8 @@ defmodule PhilomenaWeb.Image.Comment.HideController do
|
|||
defp log_details(action, comment) do
|
||||
body =
|
||||
case action do
|
||||
:create -> "Hidden comment on image >>#{comment.image_id} (#{comment.deletion_reason})"
|
||||
:delete -> "Restored comment on image >>#{comment.image_id}"
|
||||
:create -> "Hidden comment on image #{comment.image_id} (#{comment.deletion_reason})"
|
||||
:delete -> "Restored comment on image #{comment.image_id}"
|
||||
end
|
||||
|
||||
%{
|
||||
|
|
|
@ -28,8 +28,8 @@ defmodule PhilomenaWeb.Image.CommentLockController do
|
|||
defp log_details(action, image) do
|
||||
body =
|
||||
case action do
|
||||
:create -> "Locked comments on image >>#{image.id}"
|
||||
:delete -> "Unlocked comments on image >>#{image.id}"
|
||||
:create -> "Locked comments on image #{image.id}"
|
||||
:delete -> "Unlocked comments on image #{image.id}"
|
||||
end
|
||||
|
||||
%{
|
||||
|
|
|
@ -73,9 +73,9 @@ defmodule PhilomenaWeb.Image.DeleteController do
|
|||
defp log_details(action, image) do
|
||||
body =
|
||||
case action do
|
||||
:create -> "Hidden image >>#{image.id} (#{image.deletion_reason})"
|
||||
:update -> "Changed hide reason of >>#{image.id} (#{image.deletion_reason})"
|
||||
:delete -> "Restored image >>#{image.id}"
|
||||
:create -> "Hidden image #{image.id} (#{image.deletion_reason})"
|
||||
:update -> "Changed hide reason of #{image.id} (#{image.deletion_reason})"
|
||||
:delete -> "Restored image #{image.id}"
|
||||
end
|
||||
|
||||
%{
|
||||
|
|
|
@ -28,8 +28,8 @@ defmodule PhilomenaWeb.Image.DescriptionLockController do
|
|||
defp log_details(action, image) do
|
||||
body =
|
||||
case action do
|
||||
:create -> "Locked description editing on image >>#{image.id}"
|
||||
:delete -> "Unlocked description editing on image >>#{image.id}"
|
||||
:create -> "Locked description editing on image #{image.id}"
|
||||
:delete -> "Unlocked description editing on image #{image.id}"
|
||||
end
|
||||
|
||||
%{
|
||||
|
|
|
@ -40,7 +40,7 @@ defmodule PhilomenaWeb.Image.DestroyController do
|
|||
|
||||
defp log_details(_action, image) do
|
||||
%{
|
||||
body: "Hard-deleted image >>#{image.id}",
|
||||
body: "Hard-deleted image #{image.id}",
|
||||
subject_path: ~p"/images/#{image}"
|
||||
}
|
||||
end
|
||||
|
|
|
@ -35,7 +35,7 @@ defmodule PhilomenaWeb.Image.FeatureController do
|
|||
|
||||
defp log_details(_action, image) do
|
||||
%{
|
||||
body: "Featured image >>#{image.id}",
|
||||
body: "Featured image #{image.id}",
|
||||
subject_path: ~p"/images/#{image}"
|
||||
}
|
||||
end
|
||||
|
|
|
@ -16,6 +16,7 @@ defmodule PhilomenaWeb.Image.FileController do
|
|||
{:ok, image} ->
|
||||
conn
|
||||
|> put_flash(:info, "Successfully updated file.")
|
||||
|> moderation_log(details: &log_details/2, data: image)
|
||||
|> redirect(to: ~p"/images/#{image}")
|
||||
|
||||
_error ->
|
||||
|
@ -37,4 +38,8 @@ defmodule PhilomenaWeb.Image.FileController do
|
|||
conn
|
||||
end
|
||||
end
|
||||
|
||||
defp log_details(_action, image) do
|
||||
%{body: "Updated file of image #{image.id}", subject_path: ~p"/images/#{image}"}
|
||||
end
|
||||
end
|
||||
|
|
|
@ -18,7 +18,7 @@ defmodule PhilomenaWeb.Image.HashController do
|
|||
|
||||
defp log_details(_action, image) do
|
||||
%{
|
||||
body: "Cleared hash of image >>#{image.id}",
|
||||
body: "Cleared hash of image #{image.id}",
|
||||
subject_path: ~p"/images/#{image}"
|
||||
}
|
||||
end
|
||||
|
|
|
@ -19,7 +19,7 @@ defmodule PhilomenaWeb.Image.RepairController do
|
|||
|
||||
defp log_details(_action, image) do
|
||||
%{
|
||||
body: "Repaired image >>#{image.id}",
|
||||
body: "Repaired image #{image.id}",
|
||||
subject_path: ~p"/images/#{image}"
|
||||
}
|
||||
end
|
||||
|
|
|
@ -23,7 +23,7 @@ defmodule PhilomenaWeb.Image.ScratchpadController do
|
|||
|
||||
defp log_details(_action, image) do
|
||||
%{
|
||||
body: "Updated mod notes on image >>#{image.id} (#{image.scratchpad})",
|
||||
body: "Updated mod notes on image #{image.id} (#{image.scratchpad})",
|
||||
subject_path: ~p"/images/#{image}"
|
||||
}
|
||||
end
|
||||
|
|
|
@ -20,7 +20,7 @@ defmodule PhilomenaWeb.Image.SourceHistoryController do
|
|||
|
||||
defp log_details(_action, image) do
|
||||
%{
|
||||
body: "Deleted source history for image >>#{image.id}",
|
||||
body: "Deleted source history for image #{image.id}",
|
||||
subject_path: ~p"/images/#{image}"
|
||||
}
|
||||
end
|
||||
|
|
|
@ -60,7 +60,7 @@ defmodule PhilomenaWeb.Image.TagChangeController do
|
|||
|
||||
defp log_details(_action, %{image: image, details: details}) do
|
||||
%{
|
||||
body: "Deleted tag change #{details} on >>#{image.id} from history",
|
||||
body: "Deleted tag change #{details} on image #{image.id} from history",
|
||||
subject_path: ~p"/images/#{image}"
|
||||
}
|
||||
end
|
||||
|
|
|
@ -48,9 +48,9 @@ defmodule PhilomenaWeb.Image.TagLockController do
|
|||
defp log_details(action, image) do
|
||||
body =
|
||||
case action do
|
||||
:create -> "Locked tags on image >>#{image.id}"
|
||||
:update -> "Updated list of locked tags on image >>#{image.id}"
|
||||
:delete -> "Unlocked tags on image >>#{image.id}"
|
||||
:create -> "Locked tags on image #{image.id}"
|
||||
:update -> "Updated list of locked tags on image #{image.id}"
|
||||
:delete -> "Unlocked tags on image #{image.id}"
|
||||
end
|
||||
|
||||
%{
|
||||
|
|
|
@ -42,7 +42,7 @@ defmodule PhilomenaWeb.Image.TamperController do
|
|||
end
|
||||
|
||||
%{
|
||||
body: "Deleted #{vote_type} by #{data.username} on image >>#{data.image.id}",
|
||||
body: "Deleted #{vote_type} by #{data.username} on image #{data.image.id}",
|
||||
subject_path: ~p"/images/#{image}"
|
||||
}
|
||||
end
|
||||
|
|
|
@ -23,6 +23,7 @@ defmodule PhilomenaWeb.Tag.AliasController do
|
|||
{:ok, tag} ->
|
||||
conn
|
||||
|> put_flash(:info, "Tag alias queued.")
|
||||
|> moderation_log(details: &log_details/2, data: tag)
|
||||
|> redirect(to: ~p"/tags/#{tag}/alias/edit")
|
||||
|
||||
{:error, changeset} ->
|
||||
|
@ -35,6 +36,17 @@ defmodule PhilomenaWeb.Tag.AliasController do
|
|||
|
||||
conn
|
||||
|> put_flash(:info, "Tag dealias queued.")
|
||||
|> moderation_log(details: &log_details/2, data: tag)
|
||||
|> redirect(to: ~p"/tags/#{tag}")
|
||||
end
|
||||
|
||||
defp log_details(action, tag) do
|
||||
body =
|
||||
case action do
|
||||
:update -> "Aliased tag '#{tag.name}' into '#{tag.aliased_tag.name}'"
|
||||
:delete -> "Dealiased tag '#{tag.name}'"
|
||||
end
|
||||
|
||||
%{body: body, subject_path: ~p"/tags/#{tag}"}
|
||||
end
|
||||
end
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
defmodule PhilomenaWeb.TagChange.FullRevertController do
|
||||
use PhilomenaWeb, :controller
|
||||
|
||||
alias Philomena.Users
|
||||
alias Philomena.TagChanges.TagChange
|
||||
alias Philomena.TagChanges
|
||||
|
||||
|
@ -28,6 +29,10 @@ defmodule PhilomenaWeb.TagChange.FullRevertController do
|
|||
|
||||
conn
|
||||
|> put_flash(:info, "Reversion of tag changes enqueued.")
|
||||
|> moderation_log(
|
||||
details: &log_details/2,
|
||||
data: %{user: conn.assigns.current_user, params: params}
|
||||
)
|
||||
|> redirect(external: conn.assigns.referrer)
|
||||
end
|
||||
|
||||
|
@ -37,4 +42,22 @@ defmodule PhilomenaWeb.TagChange.FullRevertController do
|
|||
_false -> PhilomenaWeb.NotAuthorizedPlug.call(conn)
|
||||
end
|
||||
end
|
||||
|
||||
defp log_details(_action, data) do
|
||||
{subject, subject_path} =
|
||||
case data.params do
|
||||
%{"user_id" => user_id} ->
|
||||
user = Users.get_user!(user_id)
|
||||
|
||||
{"user #{user.name}", ~p"/profiles/#{user.name}"}
|
||||
|
||||
%{"ip" => ip} ->
|
||||
{"ip #{ip}", ~p"/ip_profiles/#{ip}"}
|
||||
|
||||
%{"fingerprint" => fp} ->
|
||||
{"fingerprint #{fp}", ~p"/fingerprint_profiles/#{fp}"}
|
||||
end
|
||||
|
||||
%{body: "Reverted all tag changes for #{subject}", subject_path: subject_path}
|
||||
end
|
||||
end
|
||||
|
|
|
@ -20,6 +20,10 @@ defmodule PhilomenaWeb.TagChange.RevertController do
|
|||
{:ok, tag_changes} ->
|
||||
conn
|
||||
|> put_flash(:info, "Successfully reverted #{length(tag_changes)} tag changes.")
|
||||
|> moderation_log(
|
||||
details: &log_details/2,
|
||||
data: %{user: conn.assigns.current_user, count: length(tag_changes)}
|
||||
)
|
||||
|> redirect(external: conn.assigns.referrer)
|
||||
|
||||
_error ->
|
||||
|
@ -35,4 +39,8 @@ defmodule PhilomenaWeb.TagChange.RevertController do
|
|||
_false -> PhilomenaWeb.NotAuthorizedPlug.call(conn)
|
||||
end
|
||||
end
|
||||
|
||||
defp log_details(_action, data) do
|
||||
%{body: "Reverted #{data.count} tag changes", subject_path: ~p"/profiles/#{data.user}"}
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Add table
Reference in a new issue