5
0
Fork 0
mirror of https://0xacab.org/sutty/sutty synced 2025-03-15 03:38:17 +00:00

Merge branch 'issue-15109-1' of https://0xacab.org/sutty/sutty into production.panel.sutty.nl

This commit is contained in:
Sutty 2024-03-08 18:20:52 +00:00
commit 3e1d761d6e
7 changed files with 119 additions and 4 deletions

View file

@ -11,6 +11,12 @@ class ActivityPubsController < ApplicationController
activity_pub.update(remote_flag_params(activity_pub)) if event == :report activity_pub.update(remote_flag_params(activity_pub)) if event == :report
activity_pub.public_send(:"#{event}!") if activity_pub.public_send(:"may_#{event}?") activity_pub.public_send(:"#{event}!") if activity_pub.public_send(:"may_#{event}?")
flash[:success] = I18n.t("activity_pubs.#{event}.success")
rescue Exception => e
ExceptionNotifier.notify_exception(e, data: { site: site.name, params: params.permit!.to_h })
flash[:error] = I18n.t("activity_pubs.#{event}.error")
ensure
redirect_to_moderation_queue! redirect_to_moderation_queue!
end end
end end
@ -49,6 +55,15 @@ class ActivityPubsController < ApplicationController
next unless activity_pub.public_send(may) next unless activity_pub.public_send(may)
activity_pub.public_send(method) activity_pub.public_send(method)
flash[:success] = I18n.t('activity_pubs.action_on_several.success')
rescue Exception => e
ExceptionNotifier.notify_exception(e,
data: { site: site.name, params: params.permit!.to_h,
activity_pub: activity_pub.id })
flash.delete(:success)
flash[:error] = I18n.t('activity_pubs.action_on_several.error')
end end
end end
end end

View file

@ -14,6 +14,12 @@ class ActorModerationsController < ApplicationController
actor_moderation.public_send(:"#{actor_event}!") if actor_moderation.public_send(:"may_#{actor_event}?") actor_moderation.public_send(:"#{actor_event}!") if actor_moderation.public_send(:"may_#{actor_event}?")
flash[:success] = I18n.t("actor_moderations.#{actor_event}.success")
rescue Exception => e
ExceptionNotifier.notify_exception(e, data: { site: site.name, params: params.permit!.to_h })
flash[:error] = I18n.t("actor_moderations.#{actor_event}.error")
ensure
redirect_to_moderation_queue! redirect_to_moderation_queue!
end end
end end
@ -21,7 +27,8 @@ class ActorModerationsController < ApplicationController
# Ver el perfil remoto # Ver el perfil remoto
def show def show
@remote_profile = actor_moderation.actor.content @remote_profile = actor_moderation.actor.content
@moderation_queue = rubanok_process(site.activity_pubs.where(actor_id: actor_moderation.actor_id), with: ActivityPubProcessor) @moderation_queue = rubanok_process(site.activity_pubs.where(actor_id: actor_moderation.actor_id),
with: ActivityPubProcessor)
end end
def action_on_several def action_on_several
@ -44,6 +51,13 @@ class ActorModerationsController < ApplicationController
actor_moderation.update(actor_moderation_params(actor_moderation)) if action == :report actor_moderation.update(actor_moderation_params(actor_moderation)) if action == :report
actor_moderation.public_send(method) actor_moderation.public_send(method)
flash[:success] = I18n.t('actor_moderations.action_on_several.success')
rescue Exception => e
ExceptionNotifier.notify_exception(e, data: { site: site.name, params: params.permit!.to_h })
flash.delete(:success)
flash[:error] = I18n.t('actor_moderations.action_on_several.error')
end end
end end
end end

View file

@ -11,11 +11,22 @@ class FediblockStatesController < ApplicationController
elsif fediblock_state.may_disable? elsif fediblock_state.may_disable?
fediblock_state.disable! fediblock_state.disable!
end end
flash[:success] = I18n.t('fediblock_states.action_on_several.success')
rescue Exception => e
ExceptionNotifier.notify_exception(e, data: { site: site.name })
flash.delete(:success)
flash[:error] = I18n.t('fediblock_states.action_on_several.error')
end end
# Bloquear otras instancias # Bloquear otras instancias
if custom_blocklist.present? if custom_blocklist.present?
ActivityPub::InstanceModerationJob.perform_later(site: site, hostnames: custom_blocklist) if ActivityPub::InstanceModerationJob.perform_now(site: site, hostnames: custom_blocklist)
flash[:success] = I18n.t('fediblock_states.action_on_several.custom_blocklist_success')
else
flash[:error] = I18n.t('fediblock_states.action_on_several.custom_blocklist_error')
end
end end
redirect_to site_moderation_queue_path redirect_to site_moderation_queue_path

View file

@ -38,7 +38,6 @@ class PostsController < ApplicationController
@usuarie = site.usuarie? current_usuarie @usuarie = site.usuarie? current_usuarie
@site_stat = SiteStat.new(site) @site_stat = SiteStat.new(site)
dummy_data
end end
def show def show
@ -82,7 +81,6 @@ class PostsController < ApplicationController
authorize post authorize post
breadcrumb post.title.value, site_post_path(site, post, locale: locale), match: :exact breadcrumb post.title.value, site_post_path(site, post, locale: locale), match: :exact
breadcrumb 'posts.edit', '' breadcrumb 'posts.edit', ''
dummy_data
end end
def update def update

View file

@ -14,6 +14,7 @@ class ActivityPub
end end
instances = ActivityPub::Instance.where(hostname: hostnames) instances = ActivityPub::Instance.where(hostname: hostnames)
success = true
Site.transaction do Site.transaction do
# Crea todas las moderaciones de instancia con un estado por # Crea todas las moderaciones de instancia con un estado por
@ -23,9 +24,15 @@ class ActivityPub
# idealmente son pocas instancias las que aparecen. # idealmente son pocas instancias las que aparecen.
site.instance_moderations.find_or_create_by(instance: instance).tap do |instance_moderation| site.instance_moderations.find_or_create_by(instance: instance).tap do |instance_moderation|
instance_moderation.block! if instance_moderation.may_block? instance_moderation.block! if instance_moderation.may_block?
# Notificar todos los errores sin detener la ejecución
rescue Exception => e
ExceptionNotifier.notify_exception(e, data: { site: site.name, instance_moderation: instance_moderation.id })
success = false
end end
end end
end end
success
end end
end end
end end

View file

@ -117,6 +117,41 @@ en:
text_report: Report text_report: Report
remote_flags: remote_flags:
report_message: "Hi! Someone using Sutty CMS reported this account on your instance. We don't have support for customized report messages yet, but we will soon. You can reach us at %{panel_actor_mention}." report_message: "Hi! Someone using Sutty CMS reported this account on your instance. We don't have support for customized report messages yet, but we will soon. You can reach us at %{panel_actor_mention}."
activity_pubs:
action_on_several:
success: "Several comments have changed moderation state. You can find them using the filters on the Comments section."
error: "There was an error while changing moderation state. We received a report and will be acting on it soon."
approve:
success: "Comment approved."
error: "There was an error while approving the comment. We received a report and will be acting on it soon."
reject:
success: "Comment rejected. You can report it using the Report button."
error: "There was an error while rejecting the comment. We received a report and will be acting on it soon."
report:
success: "Comment reported."
error: "There was an error while reporting the comment. We received a report and will be acting on it soon."
actor_moderations:
action_on_several:
success: "Several accounts have changed moderation state. You can find them using the filters on the Accounts section."
error: "There was an error while changing moderation state. We received a report and will be acting on it soon."
pause:
success: "Account paused. All of their comments will need to be moderated individually on the Comments section."
error: "There was an error while pausing the account. We received a report and will be acting on it soon."
allow:
success: "Account allowed. All of their comments will be approved automatically."
error: "There was an error while allowing the account. We received a report and will be acting on it soon."
block:
success: "Account blocked. All of their comments will be rejected automatically. If you want to report it to their instance, please use the Report button."
error: "There was an error while blocking the account. We received a report and will be acting on it soon."
report:
success: "Account reported."
error: "There was an error while reporting the account. We received a report and will be acting on it soon."
fediblock_states:
action_on_several:
success: "Blocklists have been enabled, you can find their instances by filtering by Blocked. Any pending account from these instances has also been blocked. You can approve them individually on the Accounts section."
error: "There was an error while enabling or disabling blocklists. We received a report and will be acting on it soon."
custom_blocklist_success: "Custom blocklist has been added, you can find the instances by filtering by Blocked. Any pending account from these instances has also been blocked. You can approve them individually on the Accounts section."
custom_blocklist_error: "There was an error while adding a custom blocklist. We received a report and will be acting on it soon."
moderation_queue: moderation_queue:
everything: 'Select all' everything: 'Select all'
nothing: "There's nothing for this filter" nothing: "There's nothing for this filter"

View file

@ -116,6 +116,41 @@ es:
text_report: Reportar text_report: Reportar
remote_flags: remote_flags:
report_message: "¡Hola! Une usuarie de Sutty CMS reportó esta cuenta en tu instancia. Todavía no tenemos soporte para mensajes personalizados. Podés contactarnos en %{panel_actor_mention}." report_message: "¡Hola! Une usuarie de Sutty CMS reportó esta cuenta en tu instancia. Todavía no tenemos soporte para mensajes personalizados. Podés contactarnos en %{panel_actor_mention}."
activity_pubs:
action_on_several:
success: "Se ha modificado el estado de moderación de varios comentarios. Podés encontrarlos usando los filtros en la sección Comentarios."
error: "Hubo un error al modificar el estado de moderación de varios comentarios. Hemos recibido el reporte y lo estaremos verificando."
approve:
success: "Comentario aprobado."
error: "No se puedo aprobar el comentario. Hemos recibido el reporte y lo estaremos verificando."
reject:
success: "Comentario rechazado. Podés reportarlo usando el botón Reportar."
error: "No se puedo rechazar el comentario. Hemos recibido el reporte y lo estaremos verificando."
report:
success: "Comentario reportado."
error: "No se puedo reportar el comentario. Hemos recibido el reporte y lo estaremos verificando."
actor_moderations:
action_on_several:
success: "Se ha modificado el estado de moderación de varias cuentas. Podés encontrarlas usando los filtros en la sección Cuentas."
error: "Hubo un error al modificar el estado de moderación de varias cuentas. Hemos recibido el reporte y lo estaremos verificando."
pause:
success: "Cuenta pausada. Todos los comentarios que haga necesitan ser aprobados manualmente en la sección Comentarios."
error: "No se pudo pausar la cuenta. Hemos recibido el reporte y lo estaremos verificando."
allow:
success: "Cuenta permitida. Todos los comentarios que haga serán aprobados inmediatamente."
error: "No se pudo permitir la cuenta. Hemos recibido el reporte y lo estaremos verificando."
block:
success: "Cuenta bloqueada. Todos los comentarios que haga serán rechazados inmediatamente. Si querés reportarla a su instancia, podés usar el botón Reportar."
error: "No se pudo bloquear la cuenta. Hemos recibido el reporte y lo estaremos verificando."
report:
success: "Cuenta reportada a su instancia."
error: "No se pudo reportar la cuenta. Hemos recibido el reporte y lo estaremos verificando."
fediblock_states:
action_on_several:
success: "Se habilitaron las listas de bloqueo, podés encontrar las instancias filtrando por Bloqueadas. Todas las cuentas de estas instancias pendientes de moderación han sido bloqueadas. Podés activarlas individualmente en la sección Cuentas."
error: "Hubo un error al activar o desactivar listas de bloqueo, ya recibimos el reporte y lo estaremos verificando."
custom_blocklist_success: "Se agregaron las instancias personalizadas a la lista de bloqueo, podés encontrarlas filtrando por Bloqueadas. Todas las cuentas de estas instancias pendientes de moderación han sido bloqueadas. Podés aprobarlas individualmente en la sección Cuentas."
custom_blocklist_error: "Hubo un error al agregar instancias personalizadas a la lista de bloqueo, ya recibimos el reporte y lo estaremos verificando."
moderation_queue: moderation_queue:
everything: 'Seleccionar todo' everything: 'Seleccionar todo'
nothing: 'No hay nada para este filtro' nothing: 'No hay nada para este filtro'