mirror of
https://github.com/ets-cfuhrman-pfe/EvalueTonSavoir.git
synced 2025-08-11 21:23:54 -04:00
FIX error on user model not being init
This commit is contained in:
parent
a049ba5da1
commit
44c023e023
6 changed files with 26 additions and 22 deletions
|
|
@ -12,7 +12,7 @@ const Register: React.FC = () => {
|
|||
const [name, setName] = useState(''); // State for name
|
||||
const [email, setEmail] = useState('');
|
||||
const [password, setPassword] = useState('');
|
||||
const [roles, setRoles] = useState<string[]>(['student']); // Set 'student' as the default role
|
||||
const [roles, setRoles] = useState<string[]>(['teacher']); // Set 'student' as the default role
|
||||
|
||||
const [connectionError, setConnectionError] = useState<string>('');
|
||||
const [isConnecting] = useState<boolean>(false);
|
||||
|
|
|
|||
|
|
@ -41,7 +41,7 @@ class AuthManager{
|
|||
async registerAuths(){
|
||||
for(const module of this.modules){
|
||||
try{
|
||||
module.registerAuth(this.app)
|
||||
module.registerAuth(this.app, this.simpleregister);
|
||||
} catch(error){
|
||||
console.error(`L'enregistrement du module ${module} a échoué.`);
|
||||
console.error(`Error: ${error} `);
|
||||
|
|
@ -50,8 +50,14 @@ class AuthManager{
|
|||
}
|
||||
|
||||
// eslint-disable-next-line no-unused-vars
|
||||
async login(email,pswd,req,res,next){ //passport and simpleauth use next
|
||||
|
||||
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`)
|
||||
}
|
||||
|
||||
// eslint-disable-next-line no-unused-vars
|
||||
async loginSimple(email,pswd,req,res,next){ //passport and simpleauth use next
|
||||
const userInfo = await this.simpleregister.login(email, pswd);
|
||||
const tokenToSave = jwt.create(userInfo.email, userInfo._id,userInfo.roles);
|
||||
res.redirect(`/auth/callback?user=${tokenToSave}&username=${userInfo.name}`);
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
var OAuth2Strategy = require('passport-oauth2')
|
||||
var authUserAssoc = require('../../../models/authUserAssociation')
|
||||
var users = require('../../../models/users')
|
||||
var { hasNestedValue } = require('../../../utils')
|
||||
|
||||
class PassportOAuth {
|
||||
|
|
@ -9,8 +8,8 @@ class PassportOAuth {
|
|||
this.auth_name = auth_name
|
||||
}
|
||||
|
||||
register(app, passport, endpoint, name, provider) {
|
||||
const cb_url = `${process.env['BACKEND_URL']}${endpoint}/${name}/callback`
|
||||
register(app, passport, endpoint, name, provider, userModel) {
|
||||
const cb_url = `${process.env['OIDC_URL']}${endpoint}/${name}/callback`
|
||||
const self = this
|
||||
const scope = 'openid profile email offline_access' + ` ${provider.OAUTH_ADD_SCOPE}`;
|
||||
|
||||
|
|
@ -43,14 +42,14 @@ class PassportOAuth {
|
|||
|
||||
let user_account
|
||||
if (user_association) {
|
||||
user_account = await users.getById(user_association.user_id)
|
||||
user_account = await userModel.getById(user_association.user_id)
|
||||
}
|
||||
else {
|
||||
let user_id = await users.getId(received_user.email)
|
||||
let user_id = await userModel.getId(received_user.email)
|
||||
if (user_id) {
|
||||
user_account = await users.getById(user_id);
|
||||
user_account = await userModel.getById(user_id);
|
||||
} else {
|
||||
received_user.password = users.generatePassword()
|
||||
received_user.password = userModel.generatePassword()
|
||||
user_account = await self.passportjs.register(received_user)
|
||||
}
|
||||
await authUserAssoc.link(self.auth_name, received_user.auth_id, user_account._id)
|
||||
|
|
@ -58,7 +57,7 @@ class PassportOAuth {
|
|||
|
||||
user_account.name = received_user.name
|
||||
user_account.roles = received_user.roles
|
||||
await users.editUser(user_account)
|
||||
await userModel.editUser(user_account)
|
||||
|
||||
// Store the tokens in the session
|
||||
req.session.oauth2Tokens = {
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
var OpenIDConnectStrategy = require('passport-openidconnect');
|
||||
var authUserAssoc = require('../../../models/authUserAssociation');
|
||||
var users = require('../../../models/users');
|
||||
var { hasNestedValue } = require('../../../utils');
|
||||
const { MISSING_OIDC_PARAMETER } = require('../../../constants/errorCodes.js');
|
||||
const AppError = require('../../../middleware/AppError.js');
|
||||
|
|
@ -22,7 +21,7 @@ class PassportOpenIDConnect {
|
|||
}
|
||||
}
|
||||
|
||||
async register(app, passport, endpoint, name, provider) {
|
||||
async register(app, passport, endpoint, name, provider, userModel) {
|
||||
|
||||
const config = await this.getConfigFromConfigURL(name, provider);
|
||||
const cb_url = `${process.env['OIDC_URL']}${endpoint}/${name}/callback`;
|
||||
|
|
@ -62,14 +61,14 @@ class PassportOpenIDConnect {
|
|||
|
||||
let user_account
|
||||
if (user_association) {
|
||||
user_account = await users.getById(user_association.user_id)
|
||||
user_account = await userModel.getById(user_association.user_id)
|
||||
}
|
||||
else {
|
||||
let user_id = await users.getId(received_user.email)
|
||||
let user_id = await userModel.getId(received_user.email)
|
||||
if (user_id) {
|
||||
user_account = await users.getById(user_id);
|
||||
user_account = await userModel.getById(user_id);
|
||||
} else {
|
||||
received_user.password = users.generatePassword()
|
||||
received_user.password = userModel.generatePassword()
|
||||
user_account = await self.passportjs.register(received_user)
|
||||
}
|
||||
await authUserAssoc.link(self.auth_name, received_user.auth_id, user_account._id)
|
||||
|
|
@ -77,7 +76,7 @@ class PassportOpenIDConnect {
|
|||
|
||||
user_account.name = received_user.name
|
||||
user_account.roles = received_user.roles
|
||||
await users.editUser(user_account);
|
||||
await userModel.editUser(user_account);
|
||||
|
||||
return done(null, user_account);
|
||||
} catch (error) {
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ class PassportJs{
|
|||
this.endpoint = "/api/auth"
|
||||
}
|
||||
|
||||
async registerAuth(expressapp){
|
||||
async registerAuth(expressapp, userModel){
|
||||
expressapp.use(passport.initialize());
|
||||
expressapp.use(passport.session());
|
||||
|
||||
|
|
@ -21,7 +21,7 @@ class PassportJs{
|
|||
this.registerProvider(provider.type,auth_id)
|
||||
}
|
||||
try{
|
||||
this.registeredProviders[provider.type].register(expressapp,passport,this.endpoint,name,provider)
|
||||
this.registeredProviders[provider.type].register(expressapp,passport,this.endpoint,name,provider,userModel)
|
||||
authprovider.create(auth_id)
|
||||
} catch(error){
|
||||
console.error(`La connexion ${name} de type ${provider.type} n'as pu être chargé.`);
|
||||
|
|
|
|||
|
|
@ -53,7 +53,7 @@ class SimpleAuth {
|
|||
throw error;
|
||||
}
|
||||
|
||||
await self.authmanager.login(email, password, req, res, next);
|
||||
await self.authmanager.loginSimple(email, password, req, res, next);
|
||||
} catch (error) {
|
||||
const statusCode = error.statusCode || 500;
|
||||
const message = error.message || "An internal server error occurred";
|
||||
|
|
|
|||
Loading…
Reference in a new issue