add functionality for oidc login to change MongoDB data for email, fullname, username, user.teams

This commit is contained in:
viehlieb 2022-02-23 15:09:03 +01:00
parent 9ca8d78514
commit 6b404da9f8
3 changed files with 107 additions and 0 deletions

View file

@ -1,3 +1,5 @@
import {addGroups, addEmail,changeFullname, changeUsername} from './loginHandler';
Oidc = {};
httpCa = false;
@ -16,6 +18,8 @@ if (process.env.OAUTH2_CA_CERT !== undefined) {
OAuth.registerService('oidc', 2, null, function (query) {
var debug = process.env.DEBUG || false;
var propagateOidcData = process.env.PROPAGATE_OIDC_DATA || false;
var token = getToken(query);
if (debug) console.log('XXX: register token:', token);
@ -73,6 +77,20 @@ OAuth.registerService('oidc', 2, null, function (query) {
var profile = {};
profile.name = userinfo[process.env.OAUTH2_FULLNAME_MAP]; // || userinfo["displayName"];
profile.email = userinfo[process.env.OAUTH2_EMAIL_MAP]; // || userinfo["email"];
if (propagateOidcData)
{
if(user)
{
serviceData.groups = profile.groups
profile.groups = userinfo["groups"];
users= Meteor.users;
user = users.findOne({'services.oidc.id': serviceData.id});
if(userinfo["groups"]) addGroups(user, userinfo["groups"]);
if(profile.email) addEmail(user, profile.email)
if(profile.name) changeFullname(user, profile.name)
if(profile.username) changeUsername(user, profile.username)
}
}
if (debug) console.log('XXX: profile:', profile);
return {