Optimized AD user import
This commit is contained in:
parent
95364dc8a7
commit
04a2fb01cb
|
@ -287,6 +287,13 @@ class User {
|
|||
}
|
||||
|
||||
static async importAllUsers() {
|
||||
if (this.working) {
|
||||
console.log('Já há uma importação em andamento')
|
||||
return 0
|
||||
}
|
||||
|
||||
this.working = true
|
||||
|
||||
try {
|
||||
console.log('Obtendo usuários do AD...')
|
||||
|
||||
|
@ -295,35 +302,27 @@ class User {
|
|||
filter: '(!(userAccountControl:1.2.840.113556.1.4.803:=2))' // Only active users
|
||||
})
|
||||
|
||||
// const allAdUsers = await ad.getUsersForGroup('Estudantes')
|
||||
// const allAdUsers = [await ad.findUser('aluno.teste')]
|
||||
console.log('Importando usuários...')
|
||||
|
||||
const dbUsers = []
|
||||
let i = 0
|
||||
|
||||
allAdUsers.forEach(async user => {
|
||||
const dbUser = await prisma.user.upsert({
|
||||
where: {
|
||||
sAMAccountName: user.sAMAccountName
|
||||
},
|
||||
update: user,
|
||||
create: user
|
||||
})
|
||||
|
||||
dbUsers.push(dbUser)
|
||||
|
||||
i++
|
||||
|
||||
process.stdout.write(
|
||||
`\rImportando usuário ${i} de ${allAdUsers.length}.`
|
||||
await Promise.all(
|
||||
allAdUsers.map(async user =>
|
||||
prisma.user.upsert({
|
||||
where: {
|
||||
sAMAccountName: user.sAMAccountName
|
||||
},
|
||||
update: user,
|
||||
create: user
|
||||
})
|
||||
)
|
||||
})
|
||||
)
|
||||
|
||||
console.log('\nOK!')
|
||||
console.log(`${allAdUsers.length} usuários importados`)
|
||||
|
||||
return dbUsers
|
||||
return allAdUsers.length
|
||||
} catch (e) {
|
||||
throw new Error('Erro ao importar usuários: ' + e)
|
||||
} finally {
|
||||
this.working = false
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -25,8 +25,6 @@ const Mutation = {
|
|||
|
||||
async importUsers() {
|
||||
User.importAllUsers()
|
||||
.then(users => console.log('OK', users.length))
|
||||
.catch(console.log)
|
||||
|
||||
return 'A importação está sendo feita. Isso pode demorar alguns minutos.'
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user