@iotize/tap
Version:
IoTize Device client for Javascript
47 lines • 3.24 kB
JavaScript
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==