Skip to content

Commit

Permalink
Enhanced displays of authorized api
Browse files Browse the repository at this point in the history
  • Loading branch information
Un3x committed Dec 5, 2023
1 parent f9213e7 commit 4558a8d
Show file tree
Hide file tree
Showing 6 changed files with 107 additions and 46 deletions.
21 changes: 21 additions & 0 deletions app/helpers/scope_helper.rb
Original file line number Diff line number Diff line change
@@ -1,5 +1,26 @@
module ScopeHelper
def build_scopes(scopes, api)
scopes_tree = {}
scopes.each do |scope|
splitted_scope = humanize_scope(scope, api).split('||').map(&:strip)
build_scopes_parts(scopes_tree, splitted_scope)
end
scopes_tree
end

private

def humanize_scope(scope, api)
I18n.t("api_#{api}.tokens.token.scope.#{scope}.label", default: scope.humanize)
end

def build_scopes_parts(scopes_tree, splitted_scope)
if splitted_scope.size > 2
scopes_tree[splitted_scope[0]] ||= {}
build_scopes_parts(scopes_tree[splitted_scope[0]], splitted_scope[1..])
elsif splitted_scope.size > 1
scopes_tree[splitted_scope[0]] ||= []
scopes_tree[splitted_scope[0]].push(splitted_scope[1])
end
end
end
2 changes: 1 addition & 1 deletion app/views/shared/authorization_requests/_summary.html.erb
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
<%= t('.active_tokens') %>
</a>
</li>
<% if policy(@main_token).download_attestations? %>
<% if policy(token).download_attestations? %>
<li class="fr-summary__item">
<a class="fr-summary__link" id="attestations_sociales_et_fiscales_link" href="#attestations_sociales_et_fiscales" target="_self">
<%= t('.attestations') %>
Expand Down
53 changes: 34 additions & 19 deletions app/views/shared/authorization_requests/show.html.erb
Original file line number Diff line number Diff line change
Expand Up @@ -10,35 +10,50 @@
<%= render partial: 'shared/authorization_requests/header', locals: { authorization_request: @authorization_request, to_datapass: true } %>
</header>

<section id="habilitation_access_infos" class="fr-accordion fr-mb-8v">
<h2 class="fr-h3 fr-accordion__title">
<button id="access_accordion_button" class="fr-accordion__btn" aria-expanded="false" aria-controls="accordion-107">
<%= t('.access') %>
</button>
</h2>
<div class="fr-collapse" id="accordion-107" />
<section id="habilitation_access_infos" class="fr-mb-8v">
<h3>
<%= t('.access') %>
</h3>
<div class="fr-mb-2v">
<ul class="fr-tags-group">
<% @authorization_request.token.scopes.each do |scope| %>
<li>
<span class="fr-tag">
<%= humanize_scope(scope, 'entreprise') %>
</span>
</li>
<% end %>
</ul>
<div>
<div class="fr-container">
<div class="fr-grid-row fr-grid-row--gutters fr-mb-3w">
<% build_scopes(@authorization_request.token.scopes, namespace == 'api_entreprise' ? 'entreprise' : 'particulier').each_pair do |key, values| %>
<div class="fr-col">
<div class="fr-card">
<div class="fr-card__body">
<div class="fr-card__content">
<h4 class="fr-card__title">
<%= key %>
</h4>
<div class="fr-card__desc fr-accordions-group">
<%= render partial: 'shared/tokens/scopes',
locals: {
scopes: values,
scope_type: key,
}
%>
</div>
</div>
</div>
</div>
</div>
<% end %>
</div>
</div>
<ul class="fr-btns-group--right fr-btns-group--inline-sm fr-btns-group--inline-reverse fr-btns-group--icon-right">
<li>
<a
href="<%= token_renew_path(id: @main_token.id) %>"
id="renew-token-modal-link"
class="fr-btn fr-btn--secondary fr-icon-arrow-right-line fr-btn--icon-right pull-right fr-mt-2w"
class="fr-btn fr-btn--secondary fr-icon-arrow-right-line fr-btn--icon-right fr-mt-2w"
aria-controls="main-modal"
data-fr-opened="false"
data-turbo-frame="main-modal-content"
>
<%= t('.modal.renew.display_cta') %>
</a>
</div>
</li>
</ul>
</div>
</section>

Expand Down
25 changes: 25 additions & 0 deletions app/views/shared/tokens/_scopes.html.erb
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
<% if scopes.is_a?(Array) %>
<ul>
<% scopes.each do |scope| %>
<li><%= scope %></li>
<% end %>
</ul>
<% else %>
<% scopes.each_pair do |key, values| %>
<section class="fr-accordion">
<span class="fr-accordion__title" tabindex="0" >
<button class="fr-accordion__btn" aria-expanded="false" aria-controls="accordion-<%= key %>">
<%= key %>
</button>
</span>
<div class="fr-collapse" id="accordion-<%= key %>">
<%= render partial: 'shared/tokens/scopes',
locals: {
scopes: values,
scope_type: key,
}
%>
</div>
</section>
<% end %>
<% end %>
50 changes: 25 additions & 25 deletions config/locales/api_particulier/fr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -189,7 +189,7 @@ fr:
pole_emploi_identite:
label: Pôle emploi || API statut demandeur d'emploi || Statut et identité du demandeur
pole_emploi_contact:
label: Pôle emploi || API statut demandeur d'emploi || Téléphone et e||mail
label: Pôle emploi || API statut demandeur d'emploi || Téléphone et e-mail
pole_emploi_adresse:
label: Pôle emploi || API statut demandeur d'emploi || Adresse
pole_emploi_inscription:
Expand Down Expand Up @@ -233,99 +233,99 @@ fr:
tag:
- obsolete
dgfip_declarant1_nom:
label: DGFIP || État civil || déclarant 1 || Nom
label: DGFIP || API Revenu fiscal de référence || État civil || déclarant 1 || Nom
tag:
- obsolete
dgfip_declarant1_nom_naissance:
label: DGFIP || État civil || déclarant 1 || Nom de naissance
label: DGFIP || API Revenu fiscal de référence || État civil || déclarant 1 || Nom de naissance
tag:
- obsolete
dgfip_declarant1_prenoms:
label: DGFIP || État civil || déclarant 1 || Prénom(s)
label: DGFIP || API Revenu fiscal de référence || État civil || déclarant 1 || Prénom(s)
tag:
- obsolete
dgfip_declarant1_date_naissance:
label: DGFIP || État civil || déclarant 1 || Date de naissance
label: DGFIP || API Revenu fiscal de référence || État civil || déclarant 1 || Date de naissance
tag:
- obsolete
dgfip_declarant2_nom:
label: DGFIP || État civil || déclarant 2 || Nom
label: DGFIP || API Revenu fiscal de référence || État civil || déclarant 2 || Nom
tag:
- obsolete
dgfip_declarant2_nom_naissance:
label: DGFIP || État civil || déclarant 2 || Nom de naissance
label: DGFIP || API Revenu fiscal de référence || État civil || déclarant 2 || Nom de naissance
tag:
- obsolete
dgfip_declarant2_prenoms:
label: DGFIP || État civil || déclarant 2 || Prénom(s)
label: DGFIP || API Revenu fiscal de référence || État civil || déclarant 2 || Prénom(s)
tag:
- obsolete
dgfip_declarant2_date_naissance:
label: DGFIP || État civil || déclarant 2 || Date de naissance
label: DGFIP || API Revenu fiscal de référence || État civil || déclarant 2 || Date de naissance
tag:
- obsolete
dgfip_date_recouvrement:
label: DGFIP || Échéances de l’avis d’imposition || Date de recouvrement
label: DGFIP || API Revenu fiscal de référence || Échéances de l’avis d’imposition || Date de recouvrement
tag:
- obsolete
dgfip_date_etablissement:
label: DGFIP || Échéances de l’avis d’imposition || Date d'établissement
label: DGFIP || API Revenu fiscal de référence || Échéances de l’avis d’imposition || Date d'établissement
tag:
- obsolete
dgfip_adresse_fiscale_taxation:
label: DGFIP || Situation du foyer fiscal || Adresse
label: DGFIP || API Revenu fiscal de référence || Situation du foyer fiscal || Adresse
tag:
- obsolete
dgfip_adresse_fiscale_annee:
label: DGFIP || Situation du foyer fiscal || Année de déclaration
label: DGFIP || API Revenu fiscal de référence || Situation du foyer fiscal || Année de déclaration
tag:
- obsolete
dgfip_nombre_parts:
label: DGFIP || Situation du foyer fiscal || Nombre de parts
label: DGFIP || API Revenu fiscal de référence || Situation du foyer fiscal || Nombre de parts
tag:
- obsolete
dgfip_nombre_personnes_a_charge:
label: DGFIP || Situation du foyer fiscal || Nombre de personnes à charge
label: DGFIP || API Revenu fiscal de référence || Situation du foyer fiscal || Nombre de personnes à charge
tag:
- obsolete
dgfip_situation_familiale:
label: DGFIP || Situation du foyer fiscal || Situation de famille
label: DGFIP || API Revenu fiscal de référence || Situation du foyer fiscal || Situation de famille
tag:
- obsolete
dgfip_revenu_brut_global:
label: DGFIP || Agrégats fiscaux || Revenu brut global
label: DGFIP || API Revenu fiscal de référence || Agrégats fiscaux || Revenu brut global
tag:
- obsolete
dgfip_revenu_imposable:
label: DGFIP || Agrégats fiscaux || Revenu imposable
label: DGFIP || API Revenu fiscal de référence || Agrégats fiscaux || Revenu imposable
tag:
- obsolete
dgfip_impot_revenu_net_avant_corrections:
label: DGFIP || Agrégats fiscaux || Impôt sur le revenun et avant corrections
label: DGFIP || API Revenu fiscal de référence || Agrégats fiscaux || Impôt sur le revenun et avant corrections
tag:
- obsolete
dgfip_montant_impot:
label: DGFIP || Agrégats fiscaux || Montant de l'impôt
label: DGFIP || API Revenu fiscal de référence || Agrégats fiscaux || Montant de l'impôt
tag:
- obsolete
dgfip_revenu_fiscal_reference:
label: DGFIP || Agrégats fiscaux || Revenu fiscal de référence
label: DGFIP || API Revenu fiscal de référence || Agrégats fiscaux || Revenu fiscal de référence
tag:
- obsolete
dgfip_annee_impot:
label: DGFIP || Agrégats fiscaux || Année de l'impôt
label: DGFIP || API Revenu fiscal de référence || Agrégats fiscaux || Année de l'impôt
tag:
- obsolete
dgfip_annee_revenus:
label: DGFIP || Agrégats fiscaux || Année des revenus
label: DGFIP || API Revenu fiscal de référence || Agrégats fiscaux || Année des revenus
tag:
- obsolete
dgfip_erreur_correctif:
label: DGFIP || Compléments || Erreur correctif
label: DGFIP || API Revenu fiscal de référence || Compléments || Erreur correctif
tag:
- obsolete
dgfip_situation_partielle:
label: DGFIP || Compléments || Situation partielle
label: DGFIP || API Revenu fiscal de référence || Compléments || Situation partielle
tag:
- obsolete
sessions:
Expand Down
2 changes: 1 addition & 1 deletion config/locales/fr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -264,7 +264,7 @@ fr:
links:
to_datapass: "n°%{external_id}"
show:
access: Voir vos accès
access: Vos accès
modal:
renew:
display_cta: Demander l'accès à d'autres API
Expand Down

0 comments on commit 4558a8d

Please sign in to comment.