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

bug #13347 : modify user email with dash #2142

Open
wants to merge 1 commit into
base: develop
Choose a base branch
from

Conversation

IsmailHam87
Copy link
Collaborator

@IsmailHam87 IsmailHam87 commented Oct 15, 2024

Description

Fixes the dash and point that were considered the same when using equalsIgnoreCase

Type de changement

  • Correction

Contributeur

  • Programme Vitam

@IsmailHam87 IsmailHam87 added bug Something isn't working VAS VAS contribution labels Oct 15, 2024
@IsmailHam87 IsmailHam87 added this to the IT 143 milestone Oct 15, 2024
@@ -90,7 +90,7 @@ export class UserService extends SearchService<User> {

exists(email: string): Observable<any> {
const criterionArray: Criterion[] = [];
criterionArray.push({ key: 'email', value: email, operator: Operators.equalsIgnoreCase });
criterionArray.push({ key: 'email', value: email.toLowerCase(), operator: Operators.equals });
Copy link
Contributor

Choose a reason for hiding this comment

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

c'est etrange, rien a voir avec le titre
et tu modifs la valeur ?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

j'ai expliqué dans la description que le equalsIgnoreCase considère le "-" et le "." comme étant pareils dans l'email de l'utilsateur , ce qui génère le bug, d'où l'utilisation de equals à sa place.

Copy link
Contributor

@marob marob left a comment

Choose a reason for hiding this comment

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

En retirant l'ignore case, ça laisse la possibilité de créer une duplication d'une adresse mail existante en changeant la "case" d'un ou plusieurs caractères, ce qui crée un nouveau bug.
La correction est plutôt à trouver dans MongoUtils.getCriteria qui prends la val tel quel sans l'échapper => le . est interprété par la regex comme "tout caractère" au lieu d'un caractère . (on a une injection regex !).
Le pb de . vs - ne se pose pas en equals (vs. equalsIgnoreCase) parce que tant qu'on n'a pas de * dans la val, on n'utilise pas de regex dans la requête Mongo. Dans le equalsIgnoreCase, on utilise une regex dans tous les cas, et on interprète donc le . comme "tout caractère".
À corriger donc (pour equals et equalsIgnoreCase) et créer un test.

fixes the dash and point that were considered the same when using equalsIgnoreCase
@IsmailHam87 IsmailHam87 force-pushed the bug_13347_modify_user_email_with_dash branch from ee4553b to b1f4425 Compare October 18, 2024 13:25
@GiooDev GiooDev modified the milestones: IT 143, IT 144 Nov 4, 2024
@GiooDev GiooDev modified the milestones: IT 144, IT 145 Nov 20, 2024
@GiooDev GiooDev modified the milestones: IT 145, IT 146 Dec 18, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working VAS VAS contribution
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants