Files
threshold-ui/ui/admin/app/routes/scopes/scope/groups/new.js
T
2024-05-31 11:29:24 -07:00

39 lines
885 B
JavaScript

/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: BUSL-1.1
*/
import Route from '@ember/routing/route';
import { inject as service } from '@ember/service';
export default class ScopesScopeGroupsNewRoute extends Route {
// =services
@service store;
@service can;
@service router;
// =methods
/**
* Redirect to parent route when scope does not have create authorized action.
*/
beforeModel() {
const scopeModel = this.modelFor('scopes.scope');
if (this.can.cannot('create model', scopeModel, { collection: 'groups' })) {
this.router.replaceWith('scopes.scope.groups');
}
}
/**
* Creates a new unsaved group.
* @return {GroupModel}
*/
model() {
const scopeModel = this.modelFor('scopes.scope');
const record = this.store.createRecord('group');
record.scopeModel = scopeModel;
return record;
}
}