41 lines
1.6 KiB
Text
41 lines
1.6 KiB
Text
- type = impersonation ? "Impersonation" : "Personal Access"
|
|
%hr
|
|
|
|
%h5 Active #{type} Tokens (#{active_tokens.length})
|
|
- if impersonation
|
|
%p.profile-settings-content
|
|
To see all the user's personal access tokens you must impersonate them first.
|
|
|
|
- if active_tokens.present?
|
|
.table-responsive
|
|
%table.table.active-tokens
|
|
%thead
|
|
%tr
|
|
%th Name
|
|
%th Created
|
|
%th Expires
|
|
%th Scopes
|
|
- if impersonation
|
|
%th Token
|
|
%th
|
|
%tbody
|
|
- active_tokens.each do |token|
|
|
%tr
|
|
%td= token.name
|
|
%td= token.created_at.to_date.to_s(:medium)
|
|
%td
|
|
- if token.expires?
|
|
%span{ class: ('text-warning' if token.expires_soon?) }
|
|
In #{distance_of_time_in_words_to_now(token.expires_at)}
|
|
- else
|
|
%span.token-never-expires-label Never
|
|
%td= token.scopes.present? ? token.scopes.join(", ") : "<no scopes selected>"
|
|
- if impersonation
|
|
%td.token-token-container
|
|
= text_field_tag 'impersonation-token-token', token.token, readonly: true, class: "form-control"
|
|
= clipboard_button(text: token.token)
|
|
- path = impersonation ? revoke_admin_user_impersonation_token_path(token.user, token) : revoke_profile_personal_access_token_path(token)
|
|
%td= link_to "Revoke", path, method: :put, class: "btn btn-danger float-right", data: { confirm: "Are you sure you want to revoke this #{type} Token? This action cannot be undone." }
|
|
- else
|
|
.settings-message.text-center
|
|
This user has no active #{type} Tokens.
|