FIX eslint et tests

This commit is contained in:
Eddi3_As 2025-02-03 18:44:31 -05:00
parent d52078acbf
commit 3b6e009d73
13 changed files with 37 additions and 42 deletions

View file

@ -1,4 +1,4 @@
const request = require("supertest");
const AuthConfig = require("../config/auth.js");
const AuthManager = require("../auth/auth-manager.js");
@ -115,7 +115,7 @@ describe(
expressMock.get = () => {}
let authConfigInstance;
let logSpy;
let authmanagerInstance;
// Initialisez l'instance avec la configuration mockée
beforeAll(() => {
@ -158,6 +158,7 @@ describe(
};
authConfigInstance.loadConfigTest(validModule); // On injecte la configuration mockée
authmanagerInstance = new AuthManager(expressMock,authConfigInstance.config);
authmanagerInstance.getUserModel();
expect(logSpy).toHaveBeenCalledTimes(0);
logSpy.mockClear();
});
@ -200,7 +201,7 @@ describe(
};
authConfigInstance.loadConfigTest(validModuleInvalidProvider); // On injecte la configuration mockée
authmanagerInstance = new AuthManager(expressMock,authConfigInstance.config);
expect(logSpy).toHaveBeenCalledTimes(2);
expect(logSpy).toHaveBeenCalledTimes(4);
logSpy.mockClear();
});
})

View file

@ -103,8 +103,9 @@ app.use(session({
cookie: { secure: process.env.NODE_ENV === 'production' }
}));
authManager = new AuthManager(app,null,userModel)
app.use(errorHandler)
let authManager = new AuthManager(app,null,userModel);
authManager.getUserModel();
app.use(errorHandler);
// Start server
async function start() {

View file

@ -2,8 +2,10 @@ const fs = require('fs');
const AuthConfig = require('../config/auth.js');
const jwt = require('../middleware/jwtToken.js');
const emailer = require('../config/email.js');
const model = require('../controllers/users.js');
const MISSING_REQUIRED_PARAMETER = {
message: 'Paramètre requis manquant.',
code: 400
};
class AuthManager{
constructor(expressapp,configs=null,userModel){
this.modules = []
@ -33,7 +35,7 @@ class AuthManager{
this.modules.push(new Module(this,this.configs.auth[name]));
console.info(`Module d'authentification '${name}' ajouté`)
} else{
console.error(`Le module d'authentification ${name} n'as pas été chargé car il est introuvable`)
console.error(`Le module d'authentification ${name} n'as pas été chargé car il est introuvable`);
}
}
@ -42,12 +44,14 @@ class AuthManager{
try{
module.registerAuth(this.app)
} catch(error){
console.error(`L'enregistrement du module ${module} a échoué.`)
console.error(`L'enregistrement du module ${module} a échoué.`);
console.error(`Error: ${error} `);
}
}
}
async login(userInfo,req,res,next){
// eslint-disable-next-line no-unused-vars
async login(userInfo,req,res,next){ //passport and simpleauth use next
const tokenToSave = jwt.create(userInfo.email, userInfo._id,userInfo.roles);
res.redirect(`/auth/callback?user=${tokenToSave}&username=${userInfo.name}`);
console.info(`L'utilisateur '${userInfo.name}' vient de se connecter`)
@ -55,7 +59,7 @@ class AuthManager{
async register(userInfos){
if (!userInfos.email || !userInfos.password) {
throw new AppError(MISSING_REQUIRED_PARAMETER);
throw MISSING_REQUIRED_PARAMETER;
}
const user = await this.simpleregister.register(userInfos);
emailer.registerConfirmation(user.email)

View file

@ -2,7 +2,6 @@ var OAuth2Strategy = require('passport-oauth2')
var authUserAssoc = require('../../../models/authUserAssociation')
var users = require('../../../models/users')
var { hasNestedValue } = require('../../../utils')
var jwt = require('../../../middleware/jwtToken')
class PassportOAuth {
constructor(passportjs, auth_name) {

View file

@ -2,7 +2,6 @@ var OpenIDConnectStrategy = require('passport-openidconnect')
var authUserAssoc = require('../../../models/authUserAssociation')
var users = require('../../../models/users')
var { hasNestedValue } = require('../../../utils')
var jwt = require('../../../middleware/jwtToken')
class PassportOpenIDConnect {
constructor(passportjs, auth_name) {
@ -15,7 +14,8 @@ class PassportOpenIDConnect {
const config = await fetch(provider.OIDC_CONFIG_URL)
return await config.json()
} catch (error) {
console.error(`Les informations de connexions de la connexion OIDC ${name} n'ont pu être chargées.`)
console.error(`Les informations de connexions de la connexion OIDC ${name} n'ont pu être chargées.`);
console.error(`Error: ${error} `);
}
}
@ -70,10 +70,11 @@ class PassportOpenIDConnect {
user_account.name = received_user.name
user_account.roles = received_user.roles
await users.editUser(user_account)
await users.editUser(user_account);
return done(null, user_account);
} catch (error) {
console.error(`Error: ${error} `);
}
}));

View file

@ -24,7 +24,8 @@ class PassportJs{
this.registeredProviders[provider.type].register(expressapp,passport,this.endpoint,name,provider)
authprovider.create(auth_id)
} catch(error){
console.error(`La connexion ${name} de type ${provider.type} n'as pu être chargé.`)
console.error(`La connexion ${name} de type ${provider.type} n'as pu être chargé.`);
console.error(`Error: ${error} `);
}
}
}
@ -45,7 +46,8 @@ class PassportJs{
this.registeredProviders[providerType]= new Provider(this,auth_id)
console.info(`Le type de connexion '${providerType}' a été ajouté dans passportjs.`)
} catch(error){
console.error(`Le type de connexion '${providerType}' n'as pas pu être chargé dans passportjs.`)
console.error(`Le type de connexion '${providerType}' n'as pas pu être chargé dans passportjs.`);
console.error(`Error: ${error} `);
}
}

View file

@ -15,12 +15,13 @@ class SimpleAuth {
async registerAuth(expressapp) {
try {
expressapp.post(`${this.endpoint}/register`, (req, res, next) => this.register(this, req, res));
expressapp.post(`${this.endpoint}/login`, (req, res, next) => this.authenticate(this, req, res));
expressapp.post(`${this.endpoint}/reset-password`, (req, res, next) => this.resetPassword(this, req, res));
expressapp.post(`${this.endpoint}/change-password`, jwt.authenticate, (req, res, next) => this.changePassword(this, req, res));
expressapp.post(`${this.endpoint}/register`, (req, res) => this.register(this, req, res));
expressapp.post(`${this.endpoint}/login`, (req, res, next) => this.authenticate(this, req, res, next));
expressapp.post(`${this.endpoint}/reset-password`, (req, res, next) => this.resetPassword(this, req, res, next));
expressapp.post(`${this.endpoint}/change-password`, jwt.authenticate, (req, res, next) => this.changePassword(this, req, res, next));
} catch (error) {
console.error(`La connexion ${name} de type ${provider.type} n'as pu être chargé.`)
console.error(`La connexion ${name} de type ${this.providers.type} n'as pu être chargé.`);
console.error(`Error: ${error} `);
}
}

View file

@ -16,7 +16,8 @@ class AuthConfig {
this.config = JSON.parse(configData);
} catch (error) {
console.error("Erreur lors de la lecture du fichier de configuration. Ne pas se fier si vous n'avez pas mit de fichier de configuration.");
this.config = {}
this.config = {};
throw error;
}
return this.config
}

View file

@ -20,7 +20,7 @@ class authController {
}
}
async getRoomsRequireAuth(req, res, next) {
async getRoomsRequireAuth(req, res) {
const authC = new AuthConfig();
const roomsRequireAuth = authC.getRoomsRequireAuth();

View file

@ -19,7 +19,7 @@ class AuthUserAssociation {
const collection = conn.collection('authUserAssociation');
const provider_id = await authProvider.getId(provider_name)
const userAssociation = await collection.findOne({ authProvider_id: provider_id,auth_id,auth_id });
const userAssociation = await collection.findOne({ authProvider_id: provider_id, auth_id: auth_id });
return userAssociation
}

View file

@ -1,13 +0,0 @@
const db = require('../config/db.js')
const { ObjectId } = require('mongodb');
class AuthUserAssoc {
constructor(authProviderId, authId, userId) {
this._id = new ObjectId();
this.authProvider_id = authProviderId;
this.auth_id = authId;
this.user_id = userId;
}
}

View file

@ -1,7 +1,6 @@
const bcrypt = require("bcrypt");
const AppError = require("../middleware/AppError.js");
const { USER_ALREADY_EXISTS } = require("../constants/errorCodes");
const Folders = require("../models/folders.js");
class Users {
@ -67,7 +66,7 @@ class Users {
return user;
}
/*
async login(email, password) {
try {
await this.db.connect();
@ -96,7 +95,7 @@ class Users {
throw error;
}
}
*/
async resetPassword(email) {
const newPassword = this.generatePassword();

View file

@ -1,6 +1,5 @@
const express = require('express');
const router = express.Router();
const jwt = require('../middleware/jwtToken.js');
const authController = require('../controllers/auth.js')