open-vault/ui/app/routes/vault/cluster/access/leases/show.js
2018-04-03 09:16:57 -05:00

55 lines
1.5 KiB
JavaScript

import Ember from 'ember';
import UnloadModelRoute from 'vault/mixins/unload-model-route';
import utils from 'vault/lib/key-utils';
export default Ember.Route.extend(UnloadModelRoute, {
beforeModel() {
const { lease_id: leaseId } = this.paramsFor(this.routeName);
const parentKey = utils.parentKeyForKey(leaseId);
if (utils.keyIsFolder(leaseId)) {
if (parentKey) {
return this.transitionTo('vault.cluster.access.leases.list', parentKey);
} else {
return this.transitionTo('vault.cluster.access.leases.list-root');
}
}
},
model(params) {
const { lease_id } = params;
return Ember.RSVP.hash({
lease: this.store.queryRecord('lease', {
lease_id,
}),
capabilities: Ember.RSVP.hash({
renew: this.store.findRecord('capabilities', 'sys/leases/renew'),
revoke: this.store.findRecord('capabilities', 'sys/leases/revoke'),
leases: this.modelFor('vault.cluster.access.leases'),
}),
});
},
setupController(controller, model) {
this._super(...arguments);
const { lease_id: leaseId } = this.paramsFor(this.routeName);
controller.setProperties({
model: model.lease,
capabilities: model.capabilities,
baseKey: { id: leaseId },
});
},
actions: {
error(error) {
const { lease_id } = this.paramsFor(this.routeName);
Ember.set(error, 'keyId', lease_id);
return true;
},
refreshModel() {
this.refresh();
},
},
});