MXS-2381: Add alter user

The `alter user` command makes password changes easier and keeps the usage
consistent across types in MaxScale.
This commit is contained in:
Markus Mäkelä 2019-04-17 09:34:01 +03:00
parent b008c5a1e6
commit aca3d65bbb
No known key found for this signature in database
GPG Key ID: 72D48FCE664F7B19
2 changed files with 34 additions and 0 deletions

View File

@ -135,6 +135,28 @@ exports.builder = function(yargs) {
return updateValue(host, 'maxscale', 'data.attributes.parameters.' + argv.key, argv.value)
})
})
.command('user <name> <password>', 'Alter admin user passwords', function(yargs) {
return yargs.epilog('Changes the password for a user. To change the user type, destroy the user and then create it again.')
.usage('Usage: alter user <name> <password>')
}, function(argv) {
maxctrl(argv, function(host) {
var user = {
'data': {
'id': argv.name,
'type': 'inet',
'attributes': {
'password': argv.password
}
}
}
return getJson(host, 'users/inet/' + argv.name)
.then((res) => user.data.attributes.account = res.data.attributes.account)
.then(() => doRequest(host, 'users/inet/' + argv.name, null, {method: 'DELETE'}))
.then(() => doRequest(host, 'users/inet', null, {method: 'POST', body: user}))
})
})
.usage('Usage: alter <command>')
.help()
.command('*', 'the default command', {}, function(argv) {

View File

@ -108,5 +108,17 @@ describe("Alter Commands", function() {
.should.be.rejected
})
it('creates user', function() {
return verifyCommand('create user testuser test', 'users/inet/testuser')
})
it('alters the password of a user', function() {
return verifyCommand('alter user testuser test2', 'users/inet/testuser')
})
it('destroys the altered user', function() {
return doCommand('destroy user testuser')
})
after(stopMaxScale)
});