@fleetbase/ember-ui
Version:
Fleetbase UI provides all the interface components, helpers, services and utilities for building a Fleetbase extension into the Console.
28 lines (24 loc) • 1 kB
JavaScript
import Helper from '@ember/component/helper';
import { inject as service } from '@ember/service';
import { evaluatePermission } from '../utils/permission-check';
/**
* Usage:
* {{can-write this.model}} // infers create|update via isNew
* {{can-write this.model schema="telematics"}}
* {{can-write "integrated-vendor" subject=this.model}}
*/
export default class CanWriteHelper extends Helper {
abilities;
compute([modelOrResource], named = {}) {
const { schema = 'fleet-ops', resource, subject, defaultWhenUnknown = false } = named;
const args = typeof modelOrResource === 'string' ? { resource: modelOrResource, model: subject } : { model: modelOrResource };
return evaluatePermission({
abilitiesService: this.abilities,
schema,
kind: 'write',
resource: resource ?? args.resource,
model: args.model ?? subject,
defaultWhenUnknown,
});
}
}