feat: import users from v1 - db + create users

This commit is contained in:
Nick
2019-09-28 22:19:33 -04:00
parent 41716e52a6
commit 82ba7d0a36
6 changed files with 399 additions and 41 deletions

View File

@@ -84,6 +84,56 @@ module.exports = {
} catch (err) {
return graphHelper.generateError(err)
}
},
async importUsersFromV1(obj, args, context) {
try {
const MongoClient = require('mongodb').MongoClient
if (args.mongoDbConnString && args.mongoDbConnString.length > 10) {
const client = await MongoClient.connect(args.mongoDbConnString, {
appname: `Wiki.js ${WIKI.version} Migration Tool`
})
const dbUsers = client.db().collection('users')
const userCursor = dbUsers.find({ email: { '$ne': 'guest' } })
let failed = []
let usersCount = 0
let groupsCount = 0
while (await userCursor.hasNext()) {
const usr = await userCursor.next()
try {
await WIKI.models.users.createNewUser({
providerKey: usr.provider,
email: usr.email,
name: usr.name,
passwordRaw: usr.password,
mustChangePassword: false,
sendWelcomeEmail: false
})
usersCount++
} catch (err) {
failed.push({
provider: usr.provider,
email: usr.email,
error: err.message
})
WIKI.logger.warn(`${usr.email}: ${err}`)
}
}
client.close()
return {
responseResult: graphHelper.generateSuccess('Import completed.'),
usersCount: usersCount,
groupsCount: groupsCount,
failed: failed
}
} else {
throw new Error('MongoDB Connection String is missing or invalid.')
}
} catch (err) {
return graphHelper.generateError(err)
}
}
},
SystemInfo: {