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