UNPKG

@iotize/tap

Version:

IoTize Device client for Javascript

47 lines 3.24 kB
import { InvalidConfigurationError } from './invalid-configuration-error'; export class IotizeACL { constructor(data, aclGroup) { this.aclGroup = aclGroup; this.data = data; } static create(profileName, aclGroup) { return new IotizeACL({ $: { ProfileName: profileName, Rights: '', }, }, aclGroup); } toJson() { return this.data; } listRights() { let rights = this._getProperty('Rights', ''); if (rights.length === 0) { return []; } return rights.split(',').map((entry) => { return entry.trim(); }); } username() { return this._getProperty('ProfileName'); } hasRight(name) { if (this.username() === 'admin') { return true; } let rights = this.listRights(); return rights.indexOf(name) !== -1; } _getProperty(name, defaultValue) { if (!(name in this.data.$)) { if (defaultValue === undefined) { throw new InvalidConfigurationError('Missing key ' + name + ' in IoTize ACL'); } return defaultValue; } return this.data.$[name]; } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW90aXplLWFjbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2NvbmZpZy9pb3RpemUtc3R1ZGlvL3NyYy9saWIvbW9kZWwvaW90aXplLWFjbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQVExRSxNQUFNLE9BQU8sU0FBUztJQUdwQixZQUNFLElBQVMsRUFDRixRQUF5QjtRQUF6QixhQUFRLEdBQVIsUUFBUSxDQUFpQjtRQUVoQyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztJQUNuQixDQUFDO0lBRUQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxXQUFtQixFQUFFLFFBQXlCO1FBQzFELE9BQU8sSUFBSSxTQUFTLENBQ2xCO1lBQ0UsQ0FBQyxFQUFFO2dCQUNELFdBQVcsRUFBRSxXQUFXO2dCQUN4QixNQUFNLEVBQUUsRUFBRTthQUNYO1NBQ0YsRUFDRCxRQUFRLENBQ1QsQ0FBQztJQUNKLENBQUM7SUFFTSxNQUFNO1FBQ1gsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ25CLENBQUM7SUFFTSxVQUFVO1FBQ2YsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDN0MsSUFBSSxNQUFNLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUN2QixPQUFPLEVBQUUsQ0FBQztTQUNYO1FBQ0QsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQWEsRUFBRSxFQUFFO1lBQzdDLE9BQU8sS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3RCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLFFBQVE7UUFDYixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVNLFFBQVEsQ0FBQyxJQUFrQjtRQUNoQyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsS0FBSyxPQUFPLEVBQUU7WUFDL0IsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUNELElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUMvQixPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVTLFlBQVksQ0FBQyxJQUFZLEVBQUUsWUFBcUI7UUFDeEQsSUFBSSxDQUFDLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDMUIsSUFBSSxZQUFZLEtBQUssU0FBUyxFQUFFO2dCQUM5QixNQUFNLElBQUkseUJBQXlCLENBQ2pDLGNBQWMsR0FBRyxJQUFJLEdBQUcsZ0JBQWdCLENBQ3pDLENBQUM7YUFDSDtZQUNELE9BQU8sWUFBWSxDQUFDO1NBQ3JCO1FBQ0QsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMzQixDQUFDO0NBQ0YifQ==