Просмотр исходного кода

refactor SAMLController to use async throughout

GitOrigin-RevId: dafd76042f460cd34596c8c9023e2378145105e8
Ersun Warncke 6 лет назад
Родитель
Сommit
88683e9fec

+ 0 - 10
services/web/app/src/Features/Errors/Errors.js

@@ -105,15 +105,6 @@ class SAMLSessionDataMissing extends BackwardCompatibleError {
   }
 }
 
-class SAMLUserNotFoundError extends BackwardCompatibleError {
-  constructor(arg) {
-    super(arg)
-    if (!this.message) {
-      this.message = 'user not found for SAML provider and external id'
-    }
-  }
-}
-
 class ThirdPartyIdentityExistsError extends BackwardCompatibleError {
   constructor(arg) {
     super(arg)
@@ -201,7 +192,6 @@ module.exports = {
   NotInV2Error,
   SAMLIdentityExistsError,
   SAMLSessionDataMissing,
-  SAMLUserNotFoundError,
   SLInV2Error,
   ThirdPartyIdentityExistsError,
   ThirdPartyUserNotFoundError,

+ 6 - 18
services/web/app/src/Features/User/SAMLIdentityManager.js

@@ -65,16 +65,6 @@ async function _addIdentifier(
   }
 }
 
-function _getUserQuery(providerId, externalUserId) {
-  externalUserId = externalUserId.toString()
-  providerId = providerId.toString()
-  const query = {
-    'samlIdentifiers.externalUserId': externalUserId,
-    'samlIdentifiers.providerId': providerId
-  }
-  return query
-}
-
 async function _addInstitutionEmail(userId, email, providerId) {
   const user = await UserGetter.promises.getUser(userId)
   const query = {
@@ -134,18 +124,16 @@ function _sendUnlinkedEmail(primaryEmail, providerName) {
 }
 
 async function getUser(providerId, externalUserId) {
-  if (providerId == null || externalUserId == null) {
+  if (!providerId || !externalUserId) {
     throw new Error(
       `invalid arguments: providerId: ${providerId}, externalUserId: ${externalUserId}`
     )
   }
-  providerId = providerId.toString()
-  externalUserId = externalUserId.toString()
-  const query = _getUserQuery(providerId, externalUserId)
-  let user = await User.findOne(query).exec()
-  if (!user) {
-    throw new Errors.SAMLUserNotFoundError()
-  }
+  const user = await User.findOne({
+    'samlIdentifiers.externalUserId': externalUserId.toString(),
+    'samlIdentifiers.providerId': providerId.toString()
+  }).exec()
+
   return user
 }
 

+ 1 - 0
services/web/app/src/util/promises.js

@@ -2,6 +2,7 @@ const { promisify } = require('util')
 const pLimit = require('p-limit')
 
 module.exports = {
+  promisify,
   promisifyAll,
   promisifyMultiResult,
   callbackifyMultiResult,

+ 1 - 2
services/web/test/unit/src/User/SAMLIdentityManagerTests.js

@@ -9,8 +9,7 @@ describe('SAMLIdentityManager', function() {
     this.Errors = {
       EmailExistsError: sinon.stub(),
       NotFoundError: sinon.stub(),
-      SAMLIdentityExistsError: sinon.stub(),
-      SAMLUserNotFoundError: sinon.stub()
+      SAMLIdentityExistsError: sinon.stub()
     }
     this.user = {
       _id: 'user-id-1',