[FIX] SAML logout error (#15978)

pull/15926/head
Diego Sampaio 6 years ago committed by GitHub
parent 79c2c44f83
commit a632a32979
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 13
      app/meteor-accounts-saml/server/saml_server.js
  2. 9
      app/models/server/models/Users.js

@ -13,6 +13,7 @@ import { SAML } from './saml_utils';
import { Rooms, Subscriptions, CredentialTokens } from '../../models';
import { generateUsernameSuggestion } from '../../lib';
import { _setUsername } from '../../lib/server/functions';
import { Users } from '../../models/server';
if (!Accounts.saml) {
Accounts.saml = {
@ -55,12 +56,11 @@ Meteor.methods({
console.log(`Logout request from ${ JSON.stringify(providerConfig) }`);
}
// This query should respect upcoming array of SAML logins
const user = Meteor.users.findOne({
_id: Meteor.userId(),
'services.saml.provider': provider,
}, {
'services.saml': 1,
});
const user = Users.getSAMLByIdAndSAMLProvider(Meteor.userId(), provider);
if (!user || !user.services || ! user.services.saml) {
return;
}
let { nameID } = user.services.saml;
const sessionIndex = user.services.saml.idpSession;
nameID = sessionIndex;
@ -92,7 +92,6 @@ Meteor.methods({
console.log(`SAML Logout Request ${ result }`);
}
return result;
},
});

@ -757,6 +757,15 @@ export class Users extends Base {
return this.find({ active: true, isRemote: true }, options);
}
getSAMLByIdAndSAMLProvider(_id, provider) {
return this.findOne({
_id,
'services.saml.provider': provider,
}, {
'services.saml': 1,
});
}
// UPDATE
addImportIds(_id, importIds) {
importIds = [].concat(importIds);

Loading…
Cancel
Save