feat(xo-server-recover-account): reset password and set permission to admin (#538)
Fixes vatesfr/xo-web#2129
This commit is contained in:
parent
3a0f40633a
commit
cf72467510
3
bin/xo-server-recover-account
Executable file
3
bin/xo-server-recover-account
Executable file
@ -0,0 +1,3 @@
|
|||||||
|
#!/usr/bin/env node
|
||||||
|
|
||||||
|
require('exec-promise')(require('../dist/recover-account-cli').default)
|
@ -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",
|
||||||
|
38
src/recover-account-cli.js
Normal file
38
src/recover-account-cli.js
Normal 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 }
|
@ -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"
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user