feat(xo-server-recover-account): reset password and set permission to admin (#538)

Fixes vatesfr/xo-web#2129
This commit is contained in:
Julien Fontanet 2017-05-03 15:43:32 +02:00 committed by GitHub
parent 3a0f40633a
commit cf72467510
4 changed files with 43 additions and 1 deletions

3
bin/xo-server-recover-account Executable file
View File

@ -0,0 +1,3 @@
#!/usr/bin/env node
require('exec-promise')(require('../dist/recover-account-cli').default)

View File

@ -98,6 +98,7 @@
"promise-toolbox": "^0.8.2", "promise-toolbox": "^0.8.2",
"proxy-agent": "^2.0.0", "proxy-agent": "^2.0.0",
"pug": "^2.0.0-beta11", "pug": "^2.0.0-beta11",
"pw": "^0.0.4",
"redis": "^2.7.1", "redis": "^2.7.1",
"schema-inspector": "^1.6.8", "schema-inspector": "^1.6.8",
"semver": "^5.3.0", "semver": "^5.3.0",

View File

@ -0,0 +1,38 @@
import appConf from 'app-conf'
import pw from 'pw'
import Xo from './xo'
const recoverAccount = async ([ name ]) => {
if (
name === undefined ||
name === '--help' ||
name === '-h'
) {
return `
xo-server-recover-account <user name or email>
If the user does not exist, it is created, if it exists, updates
its password and resets its permission to Admin.
`
}
const password = await new Promise(resolve => {
process.stdout.write('Password: ')
pw(resolve)
})
const xo = new Xo(await appConf.load('xo-server', {
ignoreUnknownFormats: true
}))
const user = await xo.getUserByName(name, true)
if (user !== null) {
await xo.updateUser(user.id, { password, permission: 'admin' })
console.log(`user ${name} has been successfully updated`)
} else {
await xo.createUser({ name, password, permission: 'admin' })
console.log(`user ${name} has been successfully created`)
}
}
export { recoverAccount as default }

View File

@ -5354,7 +5354,7 @@ punycode@^1.4.1:
version "1.4.1" version "1.4.1"
resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"
pw@0.0.4: pw@0.0.4, pw@^0.0.4:
version "0.0.4" version "0.0.4"
resolved "https://registry.yarnpkg.com/pw/-/pw-0.0.4.tgz#8015982ef8bebfd9d8eb8c795e751774871fde46" resolved "https://registry.yarnpkg.com/pw/-/pw-0.0.4.tgz#8015982ef8bebfd9d8eb8c795e751774871fde46"