Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[FEATURE] Rendre autonome le métier pour gérer la liste blanche des centres de certification fermés. #10176

Merged
merged 6 commits into from
Oct 4, 2024

Conversation

Steph0
Copy link
Contributor

@Steph0 Steph0 commented Sep 24, 2024

🦄 Problème

La liste blanche des centres SCO est

  • Une variable d'environnement dont la taille devient critique
  • Non accessible par les dev et le metier en lecture
  • Dependant des Captains, et d'ailleurs ca devient complexe a mettre a jour, a cause de la taille
  • Quelque chose que le metier aimerait beaucoup gerer en autonomie

🤖 Proposition

  • Declarer si un centre est en 'liste blanche' ou non en base
  • Permettre d'alimenter via une interface cette liste blanche
  • La liste blanche est un fichier CSV, avec une seule colonne, comprenant un header nomme 'externalId' puis les valeurs

Exemple de contenu de fichier CSV valide

externalId
ext1
ext2

🌈 Remarques

IMPORTANT

Pour vous eviter des PR a +1K de lignes, on decoupe un peu, et donc c'est ici une premiere partie stable, c'est a dire

  • Ajoute la liste blanche en base
  • Permet l'import et la mise a jour de cette liste via un fichier CSV

Les etapes suivantes seront

  • Utiliser la nouvelle colonne en + de la config pixCertifScoBlockedAccessWhitelist, deja quelques centaines de lignes en +
  • Aller vers une suppression de la config pixCertifScoBlockedAccessWhitelist
  • Permettre le telechargement de la liste blanche actuelle via un bouton (pour ne pas dependre du maintien d'un fichier externe)

💯 Pour tester

  • Sur Pix Admin, reperer un centre avec un 'externalId'
  • Creer un fichier suivant le template indique dans la partie solution, avec cet externalId
  • Aller dans Configuration > Certification
    • Tenter d'uploader un fichier CSV qui ne respecte pas le template, avoir une notification d'erreur
    • Tenter maintenant d'uploader le fichier CSV avec un format correct, avoir une notification de succes
  • Se connecter a la base de donne via l'outil de votre choix, et verifier que pour le centre qui a l'externalId du CSV, sa colonne isScoBlockedAccessWhitelist est a TRUE

@pix-bot-github
Copy link

Une fois les applications déployées, elles seront accessibles via les liens suivants :

Les variables d'environnement seront accessibles via les liens suivants :

@AndreiaPena
Copy link
Member

AndreiaPena commented Sep 25, 2024

Func :
utilisation d'un mauvais fichier csv
Capture d’écran 2024-09-25 à 10 48 15
utilisation d'un fichier correspondant à l'attendu ✅

@Steph0 Steph0 requested a review from a team as a code owner September 25, 2024 09:45
@Steph0 Steph0 added Func Review OK PO validated functionally the PR and removed 👀 Func Review Needed labels Sep 25, 2024
@Steph0 Steph0 changed the title Tech times whitelist [FEATURE] Rendre autonome le metier pour gerer la liste blanches des centres SCO fermes. Sep 25, 2024
@Steph0 Steph0 changed the title [FEATURE] Rendre autonome le metier pour gerer la liste blanches des centres SCO fermes. [FEATURE] Rendre autonome le metier pour gerer la liste blanches des centres de certification fermes. Sep 25, 2024
Comment on lines +13 to +22
pre: [
{
method: (request, h) =>
securityPreHandlers.hasAtLeastOneAccessOf([securityPreHandlers.checkAdminMemberHasRoleSuperAdmin])(
request,
h,
),
assign: 'hasAuthorizationToAccessAdminScope',
},
],
Copy link
Member

@AndreiaPena AndreiaPena Sep 25, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
pre: [
{
method: (request, h) =>
securityPreHandlers.hasAtLeastOneAccessOf([securityPreHandlers.checkAdminMemberHasRoleSuperAdmin])(
request,
h,
),
assign: 'hasAuthorizationToAccessAdminScope',
},
],
pre: [
{
method: securityPreHandlers.checkAdminMemberHasRoleSuperAdmin,
assign: 'hasAuthorizationToAccessAdminScope',
},
],

@AndreiaPena AndreiaPena changed the title [FEATURE] Rendre autonome le metier pour gerer la liste blanches des centres de certification fermes. [FEATURE] Rendre autonome le métier pour gérer la liste blanches des centres de certification fermés. Sep 30, 2024
@AndreiaPena AndreiaPena changed the title [FEATURE] Rendre autonome le métier pour gérer la liste blanches des centres de certification fermés. [FEATURE] Rendre autonome le métier pour gérer la liste blanche des centres de certification fermés. Sep 30, 2024
test('it displays a success notification', async function (assert) {
// when
const screen = await render(<template><ScoWhitelistConfiguration /><NotificationContainer /></template>);
const input = await screen.getByLabelText(t('pages.administration.certification.sco-whitelist.import.button'));
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

les get n'ont pas besoin d'await, ils ne retournent pas de promise. Les find oui.

Suggested change
const input = await screen.getByLabelText(t('pages.administration.certification.sco-whitelist.import.button'));
const input = screen.getByLabelText(t('pages.administration.certification.sco-whitelist.import.button'));

tags: ['api', 'admin'],
notes: [
'Cette route est restreinte aux utilisateurs authentifiés avec le rôle Super Admin',
'Elle permet de mettre a jour la liste blanche des centres SCO.',
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
'Elle permet de mettre a jour la liste blanche des centres SCO.',
'Elle permet de mettre à jour la liste blanche des centres SCO.',

Comment on lines 4 to +5
const certificationConfigurationRoutes = [complementaryCertification];
const scoWhitelistRoutes = [scoWhitelist];
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Elle devrait pas être là plutôt?

Suggested change
const certificationConfigurationRoutes = [complementaryCertification];
const scoWhitelistRoutes = [scoWhitelist];
const certificationConfigurationRoutes = [complementaryCertification, scoWhitelist];

@pix-service-auto-merge pix-service-auto-merge merged commit 686416c into dev Oct 4, 2024
6 of 8 checks passed
@pix-service-auto-merge pix-service-auto-merge deleted the tech-times-whitelist branch October 4, 2024 14:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants