mirror of
https://github.com/ets-cfuhrman-pfe/EvalueTonSavoir.git
synced 2025-08-11 21:23:54 -04:00
Add permissions oidc auth
This commit is contained in:
parent
3bb1db7236
commit
f27f22cb01
1 changed files with 11 additions and 8 deletions
|
|
@ -31,11 +31,21 @@ class PassportOpenIDConnect {
|
||||||
// patch pour la librairie permet d'obtenir les groupes, PR en cours mais "morte" : https://github.com/jaredhanson/passport-openidconnect/pull/101
|
// patch pour la librairie permet d'obtenir les groupes, PR en cours mais "morte" : https://github.com/jaredhanson/passport-openidconnect/pull/101
|
||||||
async function(req, issuer, profile, times, tok, done) {
|
async function(req, issuer, profile, times, tok, done) {
|
||||||
try {
|
try {
|
||||||
|
let role;
|
||||||
|
if (profile.groups[0].value.includes(provider.OIDC_ROLE_TEACHER_VALUE)) {
|
||||||
|
role = "teacher";
|
||||||
|
} else if (profile.groups[0].value.includes(provider.OIDC_ROLE_STUDENT_VALUE)) {
|
||||||
|
role = "student";
|
||||||
|
} else {
|
||||||
|
role = "anonymous";
|
||||||
|
}
|
||||||
|
|
||||||
const user = {
|
const user = {
|
||||||
id: profile.id,
|
id: profile.id,
|
||||||
email: profile.emails[0].value,
|
email: profile.emails[0].value,
|
||||||
name: profile.name.givenName,
|
name: profile.name.givenName,
|
||||||
groups: profile.groups[0].value ?? []
|
groups: profile.groups[0].value ?? [],
|
||||||
|
role: role
|
||||||
};
|
};
|
||||||
return done(null, user);
|
return done(null, user);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
|
|
@ -56,13 +66,6 @@ class PassportOpenIDConnect {
|
||||||
},
|
},
|
||||||
(req, res) => {
|
(req, res) => {
|
||||||
if (req.user) {
|
if (req.user) {
|
||||||
if (req.user.groups.includes(provider.OAUTH_ROLE_TEACHER_VALUE)) {
|
|
||||||
model.register(req.user.email, "teacher");
|
|
||||||
} else if (req.user.groups.includes(provider.OAUTH_ROLE_STUDENT_VALUE)) {
|
|
||||||
model.register(req.user.email, "student");
|
|
||||||
} else {
|
|
||||||
model.register(req.user.email, "anonymous");
|
|
||||||
}
|
|
||||||
res.json(req.user)
|
res.json(req.user)
|
||||||
console.info(`L'utilisateur '${req.user.name}' vient de se connecter`)
|
console.info(`L'utilisateur '${req.user.name}' vient de se connecter`)
|
||||||
} else {
|
} else {
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue