@iotize/tap
Version:
IoTize Device client for Javascript
54 lines • 3.32 kB
JavaScript
import { IotizeACL } from './iotize-acl';
const ANONYMOUS_PROFILE = 'anonymous';
/**
*
*/
export class IotizeACLGroup {
constructor(data, bundle) {
this.bundle = bundle;
this.data = data;
}
toJson() {
return this.data;
}
/**
* Get acl for a profile
* @param profileName
*/
getByProfileName(profileName) {
let profiles = this.listProfiles();
for (let profileAcl of profiles) {
if (profileAcl.username() === profileName) {
return profileAcl;
}
}
return IotizeACL.create(profileName, this);
}
hasRight(profileName, right) {
let anonymousProfile = this.getByProfileName(ANONYMOUS_PROFILE);
if (anonymousProfile && anonymousProfile.hasRight(right)) {
return true;
}
if (profileName !== ANONYMOUS_PROFILE) {
let profile = this.getByProfileName(profileName);
if (profile) {
return profile.hasRight(right);
}
}
return false;
}
/**
* List acl entries for each profile
*/
listProfiles() {
if (!this.data.IOTizeACL) {
return [];
}
let entries = [];
for (let data of this.data.IOTizeACL) {
entries.push(new IotizeACL(data, this));
}
return entries;
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW90aXplLWFjbC1ncm91cC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2NvbmZpZy9pb3RpemUtc3R1ZGlvL3NyYy9saWIvbW9kZWwvaW90aXplLWFjbC1ncm91cC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFnQixNQUFNLGNBQWMsQ0FBQztBQUt2RCxNQUFNLGlCQUFpQixHQUFHLFdBQVcsQ0FBQztBQUN0Qzs7R0FFRztBQUNILE1BQU0sT0FBTyxjQUFjO0lBR3pCLFlBQ0UsSUFBUyxFQUNGLE1BQTBCO1FBQTFCLFdBQU0sR0FBTixNQUFNLENBQW9CO1FBRWpDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO0lBQ25CLENBQUM7SUFFTSxNQUFNO1FBQ1gsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ25CLENBQUM7SUFFRDs7O09BR0c7SUFDSSxnQkFBZ0IsQ0FBQyxXQUFtQjtRQUN6QyxJQUFJLFFBQVEsR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDbkMsS0FBSyxJQUFJLFVBQVUsSUFBSSxRQUFRLEVBQUU7WUFDL0IsSUFBSSxVQUFVLENBQUMsUUFBUSxFQUFFLEtBQUssV0FBVyxFQUFFO2dCQUN6QyxPQUFPLFVBQVUsQ0FBQzthQUNuQjtTQUNGO1FBQ0QsT0FBTyxTQUFTLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRU0sUUFBUSxDQUFDLFdBQW1CLEVBQUUsS0FBbUI7UUFDdEQsSUFBSSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUNoRSxJQUFJLGdCQUFnQixJQUFJLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUN4RCxPQUFPLElBQUksQ0FBQztTQUNiO1FBQ0QsSUFBSSxXQUFXLEtBQUssaUJBQWlCLEVBQUU7WUFDckMsSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ2pELElBQUksT0FBTyxFQUFFO2dCQUNYLE9BQU8sT0FBTyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUNoQztTQUNGO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQ7O09BRUc7SUFDSSxZQUFZO1FBQ2pCLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUN4QixPQUFPLEVBQUUsQ0FBQztTQUNYO1FBQ0QsSUFBSSxPQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLEtBQUssSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDcEMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLFNBQVMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztTQUN6QztRQUNELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7Q0FDRiJ9