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:
@ -135,6 +135,28 @@ exports.builder = function(yargs) {
|
|||||||
return updateValue(host, 'maxscale', 'data.attributes.parameters.' + argv.key, argv.value)
|
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>')
|
.usage('Usage: alter <command>')
|
||||||
.help()
|
.help()
|
||||||
.command('*', 'the default command', {}, function(argv) {
|
.command('*', 'the default command', {}, function(argv) {
|
||||||
|
@ -108,5 +108,17 @@ describe("Alter Commands", function() {
|
|||||||
.should.be.rejected
|
.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)
|
after(stopMaxScale)
|
||||||
});
|
});
|
||||||
|
Reference in New Issue
Block a user