34 lines
1 KiB
Ruby
34 lines
1 KiB
Ruby
# frozen_string_literal: true
|
||
|
||
class Profile::APITokenComponent < ApplicationComponent
|
||
def initialize(api_token:)
|
||
@api_token = api_token
|
||
end
|
||
|
||
private
|
||
|
||
def recently_used?
|
||
@api_token.last_used_at&.> 2.weeks.ago
|
||
end
|
||
|
||
def autorizations
|
||
right = @api_token.write_access? ? 'lecture et écriture sur' : 'lecture seule sur'
|
||
scope = @api_token.full_access? ? 'toutes les démarches' : @api_token.procedures.map(&:libelle).join(', ')
|
||
sanitize("#{right} #{tag.b(scope)}")
|
||
end
|
||
|
||
def network_filtering
|
||
if @api_token.authorized_networks.present?
|
||
"filtrage : #{@api_token.authorized_networks_for_ui}"
|
||
else
|
||
tag.span('aucun filtrage réseau', class: 'fr-text-default--warning')
|
||
end
|
||
end
|
||
|
||
def use_and_expiration
|
||
use = @api_token.last_used_at.present? ? "utilisé il y a #{time_ago_in_words(@api_token.last_used_at)} - " : ""
|
||
expiration = @api_token.expires_at.present? ? "valable jusquʼau #{l(@api_token.expires_at, format: :long)}" : "valable indéfiniment"
|
||
|
||
"#{use} #{expiration}"
|
||
end
|
||
end
|