From 863e5b3e49aadb016b392fa5a3b37f979a179480 Mon Sep 17 00:00:00 2001 From: Douglas Barone Date: Mon, 30 Oct 2023 12:39:46 -0400 Subject: [PATCH] Bugfixes --- server/src/classes/User.js | 13 ++++++++++++- server/src/lib/activeDirectory/entryParser.js | 3 ++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/server/src/classes/User.js b/server/src/classes/User.js index 688712f..a582e39 100755 --- a/server/src/classes/User.js +++ b/server/src/classes/User.js @@ -11,6 +11,7 @@ import { pubsub, AUTH_UPDATED } from '../pubsub' import { logError, logInfo, logSuccess, logWarning } from '../lib/logger' import { performance } from 'perf_hooks' +import { attributes } from '../lib/activeDirectory/attributes' class User { constructor(username) { this.username = username @@ -384,7 +385,17 @@ class User { const startTime = performance.now() // Do not promise.all, because it freezes the app - for (const [index, user] of allAdUsers.entries()) { + for (const [index, adUser] of allAdUsers.entries()) { + if (!adUser.sAMAccountName) continue + + const user = {} + + for (const attribute of attributes.user) { + if (adUser[attribute]) { + user[attribute] = adUser[attribute] + } + } + const dbUser = await prisma.user.upsert({ where: { sAMAccountName: user.sAMAccountName diff --git a/server/src/lib/activeDirectory/entryParser.js b/server/src/lib/activeDirectory/entryParser.js index f7910b3..b0b72f3 100755 --- a/server/src/lib/activeDirectory/entryParser.js +++ b/server/src/lib/activeDirectory/entryParser.js @@ -16,7 +16,7 @@ const entryParser = (entry, raw, callback) => { if (raw.hasOwnProperty('lastLogonTimestamp')) entry.lastLogonTimestamp = ldapTimeToJSDate(raw.lastLogonTimestamp) - if (raw.hasOwnProperty('lockoutTime') && entry.lockoutTime !== '0') + if (raw.hasOwnProperty('lockoutTime')) entry.lockoutTime = ldapTimeToJSDate(raw.lockoutTime) if (raw.hasOwnProperty('extensionAttribute7')) @@ -26,6 +26,7 @@ const entryParser = (entry, raw, callback) => { } function ldapTimeToJSDate(ldapTime) { + if (ldapTime === '0') return null return new Date(ldapTime / 1e4 - 1.16444736e13) }