From a683dbb05a418cbb0e52da40a87db74a9ef02110 Mon Sep 17 00:00:00 2001
From: Alex ORLUC <alex.orluc@maarch.org>
Date: Tue, 28 Apr 2020 12:51:06 +0200
Subject: [PATCH] FEAT #13670 TIME 0:30 fix bypass logout password route + fix
 var lang

---
 src/frontend/lang/lang-en.ts                  |  2 +-
 src/frontend/lang/lang-fr.ts                  |  6 +++---
 src/frontend/lang/lang-nl.ts                  |  2 +-
 .../service/auth-interceptor.service.ts       | 20 ++++++++++---------
 4 files changed, 16 insertions(+), 14 deletions(-)

diff --git a/src/frontend/lang/lang-en.ts b/src/frontend/lang/lang-en.ts
index a7c7725eb36..7d504bf5f1d 100755
--- a/src/frontend/lang/lang-en.ts
+++ b/src/frontend/lang/lang-en.ts
@@ -1674,7 +1674,7 @@ export const LANG_EN = {
     "accountLocked": "Too many connections attemps. Retry in",
     "modelUsedByResources": "This model is used by resources, you can't delete it.",
     "mustChangePassword": "Please, you must change your password.",
-    "linkedResources": "Linked mails",
+    "linkedResources": "Main document (Linked mails)",
     "linkedResourcesAttachments": "Attachments (linked mails)",
     "accessNotFound": "Access not found",
     "moreOneCustom": "This url is not an available instance of this application, please verify your address.",
diff --git a/src/frontend/lang/lang-fr.ts b/src/frontend/lang/lang-fr.ts
index a325261f955..08c4bdd7649 100755
--- a/src/frontend/lang/lang-fr.ts
+++ b/src/frontend/lang/lang-fr.ts
@@ -1674,7 +1674,7 @@ export const LANG_FR = {
     "accountLocked": "Nombre de tentatives de connexion dépassée. Réessayez dans",
     "modelUsedByResources": "Le modèle est utilisé par des courriers, vous ne pouvez pas le supprimer.",
     "mustChangePassword": "Vous êtes invités à changer votre mot de passe.",
-    "linkedResources": "Courriers liés",
+    "linkedResources": "Document principal (Courriers liés)",
     "linkedResourcesAttachments": "Pièces jointes (courriers liés)",
     "accessNotFound": "Accès introuvable",
     "moreOneCustom": "Cette url ne correspond à aucune instance configurée, veuillez vérifier l'adresse.",
@@ -1691,7 +1691,7 @@ export const LANG_FR = {
     "rootFolder": "Dépôt racine",
     "chooseEntityAssociationAccount": "Attribuer le compte au(x) service(s)",
     "alfrescoAPI": "Adresse de l'API Alfresco",
-    "accountOk": "Le compte éxiste",
-    "accountFailed": "Le compte n'éxiste pas",
+    "accountOk": "Le compte existe",
+    "accountFailed": "Le compte n'existe pas",
     "test": "Tester",
 };
diff --git a/src/frontend/lang/lang-nl.ts b/src/frontend/lang/lang-nl.ts
index fdd02a1537b..ac152e7b186 100755
--- a/src/frontend/lang/lang-nl.ts
+++ b/src/frontend/lang/lang-nl.ts
@@ -1658,7 +1658,7 @@ export const LANG_NL = {
     "accountLocked": "Too many connections attemps. Retry in", //_TO_TRANSLATE
     "modelUsedByResources": "This model is used by resources, you can't delete it.", //_TO_TRANSLATE
     "mustChangePassword": "Please, you must change your password.", //_TO_TRANSLATE
-    "linkedResources": "Linked mails", //_TO_TRANSLATE
+    "linkedResources": "Main document (Linked mails)", //_TO_TRANSLATE
     "linkedResourcesAttachments": "Attachments (linked mails)", //_TO_TRANSLATE
     "accessNotFound": "Access not found", //_TO_TRANSLATE
     "moreOneCustom": "This url is not an available instance of this application, please verify your address.", //_TO_TRANSLATE
diff --git a/src/frontend/service/auth-interceptor.service.ts b/src/frontend/service/auth-interceptor.service.ts
index f611c2cb58b..8c137d3b6bf 100644
--- a/src/frontend/service/auth-interceptor.service.ts
+++ b/src/frontend/service/auth-interceptor.service.ts
@@ -12,7 +12,7 @@ import { FunctionsService } from './functions.service';
 @Injectable()
 export class AuthInterceptor implements HttpInterceptor {
     lang: any = LANG;
-    excludeUrls: any[] = [
+    byPassToken: any[] = [
         {
             route: '../rest/authenticate',
             method : ['POST']
@@ -25,15 +25,17 @@ export class AuthInterceptor implements HttpInterceptor {
             route: '../rest/authenticationInformation',
             method : ['GET']
         },
-        {
-            route: '../rest/password',
-            method : ['GET']
-        },
         {
             route: '../rest/passwordRules',
             method : ['GET']
         }
     ];
+    byPassHandleErrors: any[] = [
+        {
+            route: '/password',
+            method : ['PUT']
+        }
+    ];
     constructor(
         public http: HttpClient,
         private router: Router,
@@ -60,8 +62,7 @@ export class AuthInterceptor implements HttpInterceptor {
 
     intercept(request: HttpRequest<any>, next: HttpHandler): Observable<any> {
 
-        // We don't want to intercept some routes
-        if ((this.excludeUrls.filter(url => url.route === request.url && url.method.indexOf(request.method) > -1).length > 0)) {
+        if (this.byPassToken.filter(url => request.url.indexOf(url.route) > -1 && url.method.indexOf(request.method) > -1).length > 0) {
             return next.handle(request);
         } else {
             // Add current token in header request
@@ -76,7 +77,9 @@ export class AuthInterceptor implements HttpInterceptor {
                 ),*/
                 catchError(error => {
                     // Disconnect user if bad token process
-                    if (error.status === 401) {
+                    if (this.byPassHandleErrors.filter(url => request.url.indexOf(url.route) > -1 && url.method.indexOf(request.method) > -1).length > 0) {
+                        return next.handle(request);
+                    } else if (error.status === 401) {
                         this.functionsService.debug('Auth error', request.url);
                         return this.http.get('../rest/authenticate/token', {
                             params: {
@@ -103,7 +106,6 @@ export class AuthInterceptor implements HttpInterceptor {
                                         }
                                     })
                                 );
-
                             }
                             ),
                             catchError(err => {
-- 
GitLab