Skip to content

Commit

Permalink
add test for revoking lease with update capabilities, change capabili…
Browse files Browse the repository at this point in the history
…ties prefix logic
  • Loading branch information
Madalyn Parker committed Oct 30, 2018
1 parent c0b97de commit 94b42bf
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 1 deletion.
2 changes: 1 addition & 1 deletion ui/app/models/capabilities.js
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ const computedCapability = function(capability) {
return false;
}
// if the path is sudo protected, they'll need sudo + the appropriate capability
if (SUDO_PATHS.includes(path) || SUDO_PATH_PREFIXES.find(item => item.startsWith(path))) {
if (SUDO_PATHS.includes(path) || SUDO_PATH_PREFIXES.find(item => path.startsWith(item))) {
return capabilities.includes('sudo') && capabilities.includes(capability);
}
return capabilities.includes(capability);
Expand Down
14 changes: 14 additions & 0 deletions ui/tests/unit/models/capabilities-test.js
Original file line number Diff line number Diff line change
Expand Up @@ -81,4 +81,18 @@ module('Unit | Model | capabilities', function(hooks) {
assert.notOk(model.get('canDelete'));
assert.notOk(model.get('canList'));
});

test('it does not require sudo on sys/leases/revoke if update capability is present', function(assert) {
let model = run(() =>
this.owner.lookup('service:store').createRecord('capabilities', {
path: 'sys/leases/revoke',
capabilities: ['update', 'read'],
})
);
assert.ok(model.get('canRead'));
assert.notOk(model.get('canCreate'), 'sudo requires the capability to be set as well');
assert.ok(model.get('canUpdate'), 'should not require sudo if it has update');
assert.notOk(model.get('canDelete'));
assert.notOk(model.get('canList'));
});
});

0 comments on commit 94b42bf

Please sign in to comment.