2017-01-28 02:56:10 +00:00
|
|
|
- content_for :page_title do
|
|
|
|
= @account.acct
|
|
|
|
|
2017-09-09 00:26:58 +00:00
|
|
|
.table-wrapper
|
2018-05-05 21:06:29 +00:00
|
|
|
%table.table.inline-table
|
2017-09-09 00:26:58 +00:00
|
|
|
%tbody
|
2016-12-04 17:10:40 +00:00
|
|
|
%tr
|
2017-09-09 00:26:58 +00:00
|
|
|
%th= t('admin.accounts.username')
|
|
|
|
%td= @account.username
|
2016-12-04 17:10:40 +00:00
|
|
|
%tr
|
2017-09-09 00:26:58 +00:00
|
|
|
%th= t('admin.accounts.domain')
|
|
|
|
%td= @account.domain
|
2016-12-04 17:10:40 +00:00
|
|
|
%tr
|
2017-09-09 00:26:58 +00:00
|
|
|
%th= t('admin.accounts.display_name')
|
|
|
|
%td= @account.display_name
|
2017-08-14 12:09:00 +00:00
|
|
|
|
2018-04-02 11:45:07 +00:00
|
|
|
%tr
|
|
|
|
%th= t('admin.accounts.avatar')
|
2018-12-11 18:28:03 +00:00
|
|
|
%td
|
2018-04-02 11:45:07 +00:00
|
|
|
= 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)
|
2018-12-11 18:28:03 +00:00
|
|
|
%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)
|
2018-04-02 11:45:07 +00:00
|
|
|
|
2017-09-09 00:26:58 +00:00
|
|
|
- if @account.local?
|
2017-11-17 14:18:20 +00:00
|
|
|
%tr
|
|
|
|
%th= t('admin.accounts.role')
|
|
|
|
%td
|
2018-01-23 13:31:31 +00:00
|
|
|
- if @account.user.nil?
|
|
|
|
= t("admin.accounts.moderation.suspended")
|
|
|
|
- else
|
|
|
|
= t("admin.accounts.roles.#{@account.user&.role}")
|
2017-11-17 14:18:20 +00:00
|
|
|
= 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)
|
2017-08-14 12:09:00 +00:00
|
|
|
%tr
|
2017-09-09 00:26:58 +00:00
|
|
|
%th= t('admin.accounts.email')
|
2017-11-11 19:23:33 +00:00
|
|
|
%td
|
|
|
|
= @account.user_email
|
2018-04-10 07:16:06 +00:00
|
|
|
= 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
|
2018-05-06 08:59:03 +00:00
|
|
|
%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)
|
2017-11-07 18:06:44 +00:00
|
|
|
%tr
|
|
|
|
%th= t('admin.accounts.login_status')
|
|
|
|
%td
|
|
|
|
- if @account.user&.disabled?
|
|
|
|
= t('admin.accounts.disabled')
|
2017-11-11 19:23:33 +00:00
|
|
|
= table_link_to 'unlock', t('admin.accounts.enable'), enable_admin_account_path(@account.id), method: :post if can?(:enable, @account.user)
|
2017-11-07 18:06:44 +00:00
|
|
|
- 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
2018-12-22 19:02:09 +00:00
|
|
|
= table_link_to 'lock', t('admin.accounts.disable'), new_admin_account_action_path(@account.id, type: 'disable') if can?(:disable, @account.user)
|
2017-08-14 12:09:00 +00:00
|
|
|
%tr
|
2017-09-09 00:26:58 +00:00
|
|
|
%th= t('admin.accounts.most_recent_ip')
|
|
|
|
%td= @account.user_current_sign_in_ip
|
|
|
|
%tr
|
|
|
|
%th= t('admin.accounts.most_recent_activity')
|
2017-08-14 12:09:00 +00:00
|
|
|
%td
|
2017-09-09 00:26:58 +00:00
|
|
|
- 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
|
2017-08-14 12:09:00 +00:00
|
|
|
- else
|
2018-11-26 14:53:27 +00:00
|
|
|
\-
|
2017-09-09 00:26:58 +00:00
|
|
|
- else
|
2017-08-14 12:09:00 +00:00
|
|
|
%tr
|
2017-09-09 00:26:58 +00:00
|
|
|
%th= t('admin.accounts.profile_url')
|
|
|
|
%td= link_to @account.url, @account.url
|
2017-08-14 12:09:00 +00:00
|
|
|
%tr
|
2017-09-09 00:26:58 +00:00
|
|
|
%th= t('admin.accounts.protocol')
|
|
|
|
%td= @account.protocol.humanize
|
2016-12-04 17:10:40 +00:00
|
|
|
|
2017-09-09 00:26:58 +00:00
|
|
|
%tr
|
|
|
|
%th= t('admin.accounts.follows')
|
2018-05-05 21:06:29 +00:00
|
|
|
%td= number_to_human @account.following_count
|
2017-09-09 00:26:58 +00:00
|
|
|
%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
2018-12-27 12:15:39 +00:00
|
|
|
%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)
|
2017-09-09 00:26:58 +00:00
|
|
|
%tr
|
|
|
|
%th= t('admin.accounts.statuses')
|
2018-05-05 21:06:29 +00:00
|
|
|
%td= link_to number_to_human(@account.statuses_count), admin_account_statuses_path(@account.id)
|
2017-09-09 00:26:58 +00:00
|
|
|
%tr
|
|
|
|
%th= t('admin.accounts.media_attachments')
|
|
|
|
%td
|
2018-05-05 21:06:29 +00:00
|
|
|
= link_to number_to_human(@account.media_attachments.count), admin_account_statuses_path(@account.id, { media: true })
|
2017-09-09 00:26:58 +00:00
|
|
|
= 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)
|
2017-06-08 12:58:22 +00:00
|
|
|
|
2017-09-12 21:06:10 +00:00
|
|
|
%div{ style: 'overflow: hidden' }
|
|
|
|
%div{ style: 'float: right' }
|
|
|
|
- if @account.local?
|
2017-11-11 19:23:33 +00:00
|
|
|
= link_to t('admin.accounts.reset_password'), admin_account_reset_path(@account.id), method: :create, class: 'button' if can?(:reset_password, @account.user)
|
2017-09-12 21:06:10 +00:00
|
|
|
- if @account.user&.otp_required_for_login?
|
2017-11-11 19:23:33 +00:00
|
|
|
= 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)
|
2017-11-07 18:06:44 +00:00
|
|
|
- unless @account.memorial?
|
2018-10-20 00:39:39 +00:00
|
|
|
= 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)
|
2017-09-12 21:06:10 +00:00
|
|
|
- else
|
2017-11-11 19:23:33 +00:00
|
|
|
= link_to t('admin.accounts.redownload'), redownload_admin_account_path(@account.id), method: :post, class: 'button' if can?(:redownload, @account)
|
2017-09-12 21:06:10 +00:00
|
|
|
|
|
|
|
%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
2018-12-22 19:02:09 +00:00
|
|
|
= link_to t('admin.accounts.undo_silenced'), unsilence_admin_account_path(@account.id), method: :post, class: 'button' if can?(:unsilence, @account)
|
2017-09-12 21:06:10 +00:00
|
|
|
- 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
2018-12-22 19:02:09 +00:00
|
|
|
= link_to t('admin.accounts.silence'), new_admin_account_action_path(@account.id, type: 'silence'), class: 'button button--destructive' if can?(:silence, @account)
|
2017-09-12 21:06:10 +00:00
|
|
|
|
|
|
|
- if @account.local?
|
|
|
|
- unless @account.user_confirmed?
|
2017-11-11 19:23:33 +00:00
|
|
|
= link_to t('admin.accounts.confirm'), admin_account_confirmation_path(@account.id), method: :post, class: 'button' if can?(:confirm, @account.user)
|
2017-09-12 21:06:10 +00:00
|
|
|
|
|
|
|
- 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
2018-12-22 19:02:09 +00:00
|
|
|
= link_to t('admin.accounts.undo_suspension'), unsuspend_admin_account_path(@account.id), method: :post, class: 'button' if can?(:unsuspend, @account)
|
2017-09-12 21:06:10 +00:00
|
|
|
- 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
2018-12-22 19:02:09 +00:00
|
|
|
= 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)
|
2017-09-12 21:06:10 +00:00
|
|
|
|
2017-12-13 11:15:10 +00:00
|
|
|
- if !@account.local? && @account.hub_url.present?
|
2018-05-05 21:06:29 +00:00
|
|
|
%hr.spacer/
|
|
|
|
|
2017-09-12 21:06:10 +00:00
|
|
|
%h3 OStatus
|
|
|
|
|
|
|
|
.table-wrapper
|
2018-05-05 21:06:29 +00:00
|
|
|
%table.table.inline-table
|
2017-09-12 21:06:10 +00:00
|
|
|
%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' }
|
2017-11-11 19:23:33 +00:00
|
|
|
= 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)
|
2017-08-14 12:09:00 +00:00
|
|
|
- if @account.subscribed?
|
2017-11-11 19:23:33 +00:00
|
|
|
= link_to t('admin.accounts.unsubscribe'), unsubscribe_admin_account_path(@account.id), method: :post, class: 'button negative' if can?(:unsubscribe, @account)
|
2017-04-15 14:44:59 +00:00
|
|
|
|
2017-12-13 11:15:10 +00:00
|
|
|
- if !@account.local? && @account.inbox_url.present?
|
2018-05-05 21:06:29 +00:00
|
|
|
%hr.spacer/
|
|
|
|
|
2017-09-12 21:06:10 +00:00
|
|
|
%h3 ActivityPub
|
2017-04-23 02:43:42 +00:00
|
|
|
|
2017-09-12 21:06:10 +00:00
|
|
|
.table-wrapper
|
2018-05-05 21:06:29 +00:00
|
|
|
%table.table.inline-table
|
2017-09-12 21:06:10 +00:00
|
|
|
%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
|
2017-10-07 18:26:43 +00:00
|
|
|
|
2018-05-05 21:06:29 +00:00
|
|
|
%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
2018-12-22 19:02:09 +00:00
|
|
|
= render @warnings
|
|
|
|
|
|
|
|
%hr.spacer/
|
|
|
|
|
2018-05-05 21:06:29 +00:00
|
|
|
= render @moderation_notes
|
2017-10-07 18:26:43 +00:00
|
|
|
|
|
|
|
= simple_form_for @account_moderation_note, url: admin_account_moderation_notes_path do |f|
|
|
|
|
= render 'shared/error_messages', object: @account_moderation_note
|
|
|
|
|
2018-05-05 21:06:29 +00:00
|
|
|
= f.input :content, placeholder: t('admin.reports.notes.placeholder'), rows: 6
|
2017-10-07 18:26:43 +00:00
|
|
|
= f.hidden_field :target_account_id
|
|
|
|
|
|
|
|
.actions
|
2018-05-05 21:06:29 +00:00
|
|
|
= f.button :button, t('admin.account_moderation_notes.create'), type: :submit
|