|
|
|
- content_for :page_title do
|
|
|
|
= @account.acct
|
|
|
|
|
|
|
|
.table-wrapper
|
|
|
|
%table.table.inline-table
|
|
|
|
%tbody
|
|
|
|
%tr
|
|
|
|
%th= t('admin.accounts.username')
|
|
|
|
%td= @account.username
|
|
|
|
%tr
|
|
|
|
%th= t('admin.accounts.domain')
|
|
|
|
%td= @account.domain
|
|
|
|
%tr
|
|
|
|
%th= t('admin.accounts.display_name')
|
|
|
|
%td= @account.display_name
|
|
|
|
|
|
|
|
%tr
|
|
|
|
%th= t('admin.accounts.avatar')
|
|
|
|
%td
|
|
|
|
= link_to @account.avatar.url(:original) do
|
|
|
|
= image_tag @account.avatar.url(:original), alt: '', width: 40, height: 40, class: 'avatar'
|
|
|
|
- if @account.local? && @account.avatar?
|
|
|
|
= table_link_to 'trash', t('admin.accounts.remove_avatar'), remove_avatar_admin_account_path(@account.id), method: :post, data: { confirm: t('admin.accounts.are_you_sure') } if can?(:remove_avatar, @account)
|
|
|
|
%tr
|
|
|
|
%th= t('admin.accounts.header')
|
|
|
|
%td
|
|
|
|
= link_to @account.header.url(:original) do
|
|
|
|
= image_tag @account.header.url(:original), alt: '', width: 128, height: 40, class: 'header'
|
|
|
|
- if @account.local? && @account.header?
|
|
|
|
= table_link_to 'trash', t('admin.accounts.remove_header'), remove_header_admin_account_path(@account.id), method: :post, data: { confirm: t('admin.accounts.are_you_sure') } if can?(:remove_header, @account)
|
|
|
|
|
|
|
|
- if @account.local?
|
|
|
|
%tr
|
|
|
|
%th= t('admin.accounts.role')
|
|
|
|
%td
|
|
|
|
- if @account.user.nil?
|
|
|
|
= t("admin.accounts.moderation.suspended")
|
|
|
|
- else
|
|
|
|
= t("admin.accounts.roles.#{@account.user&.role}")
|
|
|
|
= table_link_to 'angle-double-up', t('admin.accounts.promote'), promote_admin_account_role_path(@account.id), method: :post, data: { confirm: t('admin.accounts.are_you_sure') } if can?(:promote, @account.user)
|
|
|
|
= table_link_to 'angle-double-down', t('admin.accounts.demote'), demote_admin_account_role_path(@account.id), method: :post, data: { confirm: t('admin.accounts.are_you_sure') } if can?(:demote, @account.user)
|
|
|
|
%tr
|
|
|
|
%th= t('admin.accounts.email')
|
|
|
|
%td
|
|
|
|
= @account.user_email
|
|
|
|
= table_link_to 'edit', t('admin.accounts.change_email.label'), admin_account_change_email_path(@account.id) if can?(:change_email, @account.user)
|
|
|
|
- if @account.user_unconfirmed_email.present?
|
|
|
|
%th= t('admin.accounts.unconfirmed_email')
|
|
|
|
%td
|
|
|
|
= @account.user_unconfirmed_email
|
|
|
|
%tr
|
|
|
|
%th= t('admin.accounts.email_status')
|
|
|
|
%td
|
|
|
|
- if @account.user&.confirmed?
|
|
|
|
= t('admin.accounts.confirmed')
|
|
|
|
- else
|
|
|
|
= t('admin.accounts.confirming')
|
|
|
|
= table_link_to 'refresh', t('admin.accounts.resend_confirmation.send'), resend_admin_account_confirmation_path(@account.id), method: :post if can?(:confirm, @account.user)
|
|
|
|
%tr
|
|
|
|
%th= t('admin.accounts.login_status')
|
|
|
|
%td
|
|
|
|
- if @account.user&.disabled?
|
|
|
|
= t('admin.accounts.disabled')
|
|
|
|
= table_link_to 'unlock', t('admin.accounts.enable'), enable_admin_account_path(@account.id), method: :post if can?(:enable, @account.user)
|
|
|
|
- else
|
|
|
|
= t('admin.accounts.enabled')
|
Add moderation warnings (#9519)
* Add moderation warnings
Replace individual routes for disabling, silencing, and suspending
a user, as well as the report update route, with a unified account
action controller that allows you to select an action (none,
disable, silence, suspend) as well as whether it should generate an
e-mail notification with optional custom text. That notification,
with the optional custom text, is saved as a warning.
Additionally, there are warning presets you can configure to save
time when performing the above.
* Use Account#local_username_and_domain
6 years ago
|
|
|
= table_link_to 'lock', t('admin.accounts.disable'), new_admin_account_action_path(@account.id, type: 'disable') if can?(:disable, @account.user)
|
|
|
|
%tr
|
|
|
|
%th= t('admin.accounts.most_recent_ip')
|
|
|
|
%td= @account.user_current_sign_in_ip
|
|
|
|
%tr
|
|
|
|
%th= t('admin.accounts.most_recent_activity')
|
|
|
|
%td
|
|
|
|
- if @account.user_current_sign_in_at
|
|
|
|
%time.formatted{ datetime: @account.user_current_sign_in_at.iso8601, title: l(@account.user_current_sign_in_at) }
|
|
|
|
= l @account.user_current_sign_in_at
|
|
|
|
- else
|
|
|
|
\-
|
|
|
|
- else
|
|
|
|
%tr
|
|
|
|
%th= t('admin.accounts.profile_url')
|
|
|
|
%td= link_to @account.url, @account.url
|
|
|
|
%tr
|
|
|
|
%th= t('admin.accounts.protocol')
|
|
|
|
%td= @account.protocol.humanize
|
|
|
|
|
|
|
|
%tr
|
|
|
|
%th= t('admin.accounts.follows')
|
|
|
|
%td= number_to_human @account.following_count
|
|
|
|
%tr
|
|
|
|
%th= t('admin.accounts.followers')
|
Add local followers page to admin account UI (#9610)
* Add local followers page to admin account UI
For moderation, I often find myself wondering who, locally, is following
a remote user. Currently, to see this, I have to go back to the web UI,
paste in their full handle, click their profile, and go to the
"Followers" tab (plus, this information is incidental, and if mastodon
ever decides to resolve all of the follower information, there will be
no place local followers are shown). This PR adds a new page which is
accessible via the "following" count on the admin's account view
page, which shows the local followers. (It has filter parameters for
account location to indicate that only local followers are shown, and
leave room for expansion if mastodon ever decides to store the entire
remote follow list).
* Normalize en.yml
6 years ago
|
|
|
%td
|
|
|
|
= number_to_human @account.followers_count
|
|
|
|
= link_to t('admin.accounts.followers_local', local: number_to_human(@account.local_followers_count)), admin_account_followers_path(@account.id)
|
|
|
|
%tr
|
|
|
|
%th= t('admin.accounts.statuses')
|
|
|
|
%td= link_to number_to_human(@account.statuses_count), admin_account_statuses_path(@account.id)
|
|
|
|
%tr
|
|
|
|
%th= t('admin.accounts.media_attachments')
|
|
|
|
%td
|
|
|
|
= link_to number_to_human(@account.media_attachments.count), admin_account_statuses_path(@account.id, { media: true })
|
|
|
|
= surround '(', ')' do
|
|
|
|
= number_to_human_size @account.media_attachments.sum('file_file_size')
|
|
|
|
%tr
|
|
|
|
%th= t('.created_reports')
|
|
|
|
%td= link_to pluralize(@account.reports.count, t('.report')), admin_reports_path(account_id: @account.id)
|
|
|
|
%tr
|
|
|
|
%th= t('.targeted_reports')
|
|
|
|
%td= link_to pluralize(@account.targeted_reports.count, t('.report')), admin_reports_path(target_account_id: @account.id)
|
|
|
|
|
|
|
|
%div{ style: 'overflow: hidden' }
|
|
|
|
%div{ style: 'float: right' }
|
|
|
|
- if @account.local?
|
|
|
|
= link_to t('admin.accounts.reset_password'), admin_account_reset_path(@account.id), method: :create, class: 'button' if can?(:reset_password, @account.user)
|
|
|
|
- if @account.user&.otp_required_for_login?
|
|
|
|
= link_to t('admin.accounts.disable_two_factor_authentication'), admin_user_two_factor_authentication_path(@account.user.id), method: :delete, class: 'button' if can?(:disable_2fa, @account.user)
|
|
|
|
- unless @account.memorial?
|
|
|
|
= link_to t('admin.accounts.memorialize'), memorialize_admin_account_path(@account.id), method: :post, data: { confirm: t('admin.accounts.are_you_sure') }, class: 'button button--destructive' if can?(:memorialize, @account)
|
|
|
|
- else
|
|
|
|
= link_to t('admin.accounts.redownload'), redownload_admin_account_path(@account.id), method: :post, class: 'button' if can?(:redownload, @account)
|
|
|
|
|
|
|
|
%div{ style: 'float: left' }
|
|
|
|
- if @account.silenced?
|
Add moderation warnings (#9519)
* Add moderation warnings
Replace individual routes for disabling, silencing, and suspending
a user, as well as the report update route, with a unified account
action controller that allows you to select an action (none,
disable, silence, suspend) as well as whether it should generate an
e-mail notification with optional custom text. That notification,
with the optional custom text, is saved as a warning.
Additionally, there are warning presets you can configure to save
time when performing the above.
* Use Account#local_username_and_domain
6 years ago
|
|
|
= link_to t('admin.accounts.undo_silenced'), unsilence_admin_account_path(@account.id), method: :post, class: 'button' if can?(:unsilence, @account)
|
|
|
|
- else
|
Add moderation warnings (#9519)
* Add moderation warnings
Replace individual routes for disabling, silencing, and suspending
a user, as well as the report update route, with a unified account
action controller that allows you to select an action (none,
disable, silence, suspend) as well as whether it should generate an
e-mail notification with optional custom text. That notification,
with the optional custom text, is saved as a warning.
Additionally, there are warning presets you can configure to save
time when performing the above.
* Use Account#local_username_and_domain
6 years ago
|
|
|
= link_to t('admin.accounts.silence'), new_admin_account_action_path(@account.id, type: 'silence'), class: 'button button--destructive' if can?(:silence, @account)
|
|
|
|
|
|
|
|
- if @account.local?
|
|
|
|
- unless @account.user_confirmed?
|
|
|
|
= link_to t('admin.accounts.confirm'), admin_account_confirmation_path(@account.id), method: :post, class: 'button' if can?(:confirm, @account.user)
|
|
|
|
|
|
|
|
- if @account.suspended?
|
Add moderation warnings (#9519)
* Add moderation warnings
Replace individual routes for disabling, silencing, and suspending
a user, as well as the report update route, with a unified account
action controller that allows you to select an action (none,
disable, silence, suspend) as well as whether it should generate an
e-mail notification with optional custom text. That notification,
with the optional custom text, is saved as a warning.
Additionally, there are warning presets you can configure to save
time when performing the above.
* Use Account#local_username_and_domain
6 years ago
|
|
|
= link_to t('admin.accounts.undo_suspension'), unsuspend_admin_account_path(@account.id), method: :post, class: 'button' if can?(:unsuspend, @account)
|
|
|
|
- else
|
Add moderation warnings (#9519)
* Add moderation warnings
Replace individual routes for disabling, silencing, and suspending
a user, as well as the report update route, with a unified account
action controller that allows you to select an action (none,
disable, silence, suspend) as well as whether it should generate an
e-mail notification with optional custom text. That notification,
with the optional custom text, is saved as a warning.
Additionally, there are warning presets you can configure to save
time when performing the above.
* Use Account#local_username_and_domain
6 years ago
|
|
|
= link_to t('admin.accounts.perform_full_suspension'), new_admin_account_action_path(@account.id, type: 'suspend'), class: 'button button--destructive' if can?(:suspend, @account)
|
|
|
|
|
|
|
|
- if !@account.local? && @account.hub_url.present?
|
|
|
|
%hr.spacer/
|
|
|
|
|
|
|
|
%h3 OStatus
|
|
|
|
|
|
|
|
.table-wrapper
|
|
|
|
%table.table.inline-table
|
|
|
|
%tbody
|
|
|
|
%tr
|
|
|
|
%th= t('admin.accounts.feed_url')
|
|
|
|
%td= link_to @account.remote_url, @account.remote_url
|
|
|
|
%tr
|
|
|
|
%th= t('admin.accounts.push_subscription_expires')
|
|
|
|
%td
|
|
|
|
- if @account.subscribed?
|
|
|
|
%time.formatted{ datetime: @account.subscription_expires_at.iso8601, title: l(@account.subscription_expires_at) }
|
|
|
|
= l @account.subscription_expires_at
|
|
|
|
- else
|
|
|
|
= t('admin.accounts.not_subscribed')
|
|
|
|
%tr
|
|
|
|
%th= t('admin.accounts.salmon_url')
|
|
|
|
%td= link_to @account.salmon_url, @account.salmon_url
|
|
|
|
|
|
|
|
%div{ style: 'overflow: hidden' }
|
|
|
|
%div{ style: 'float: right' }
|
|
|
|
= link_to @account.subscribed? ? t('admin.accounts.resubscribe') : t('admin.accounts.subscribe'), subscribe_admin_account_path(@account.id), method: :post, class: 'button' if can?(:subscribe, @account)
|
|
|
|
- if @account.subscribed?
|
|
|
|
= link_to t('admin.accounts.unsubscribe'), unsubscribe_admin_account_path(@account.id), method: :post, class: 'button negative' if can?(:unsubscribe, @account)
|
|
|
|
|
|
|
|
- if !@account.local? && @account.inbox_url.present?
|
|
|
|
%hr.spacer/
|
|
|
|
|
|
|
|
%h3 ActivityPub
|
|
|
|
|
|
|
|
.table-wrapper
|
|
|
|
%table.table.inline-table
|
|
|
|
%tbody
|
|
|
|
%tr
|
|
|
|
%th= t('admin.accounts.inbox_url')
|
|
|
|
%td= link_to @account.inbox_url, @account.inbox_url
|
|
|
|
%tr
|
|
|
|
%th= t('admin.accounts.outbox_url')
|
|
|
|
%td= link_to @account.outbox_url, @account.outbox_url
|
|
|
|
%tr
|
|
|
|
%th= t('admin.accounts.shared_inbox_url')
|
|
|
|
%td= link_to @account.shared_inbox_url, @account.shared_inbox_url
|
|
|
|
%tr
|
|
|
|
%th= t('admin.accounts.followers_url')
|
|
|
|
%td= link_to @account.followers_url, @account.followers_url
|
|
|
|
|
|
|
|
%hr.spacer/
|
|
|
|
|
Add moderation warnings (#9519)
* Add moderation warnings
Replace individual routes for disabling, silencing, and suspending
a user, as well as the report update route, with a unified account
action controller that allows you to select an action (none,
disable, silence, suspend) as well as whether it should generate an
e-mail notification with optional custom text. That notification,
with the optional custom text, is saved as a warning.
Additionally, there are warning presets you can configure to save
time when performing the above.
* Use Account#local_username_and_domain
6 years ago
|
|
|
= render @warnings
|
|
|
|
|
|
|
|
%hr.spacer/
|
|
|
|
|
|
|
|
= render @moderation_notes
|
|
|
|
|
|
|
|
= simple_form_for @account_moderation_note, url: admin_account_moderation_notes_path do |f|
|
|
|
|
= render 'shared/error_messages', object: @account_moderation_note
|
|
|
|
|
|
|
|
= f.input :content, placeholder: t('admin.reports.notes.placeholder'), rows: 6
|
|
|
|
= f.hidden_field :target_account_id
|
|
|
|
|
|
|
|
.actions
|
|
|
|
= f.button :button, t('admin.account_moderation_notes.create'), type: :submit
|