@dasch-swiss/dsp-js
Version:
JavaScript library that handles API requests to Knora
62 lines • 2.17 kB
JavaScript
/**
* Utility methods to facilitate the handling of permissions defined for a resource or value.
*
* @category Model V2
*/
export var PermissionUtil;
(function (PermissionUtil) {
/**
* Possible permissions on resources and values.
*/
var Permissions;
(function (Permissions) {
/**
* restricted view
*/
Permissions[Permissions["RV"] = 0] = "RV";
/**
* view permission
*/
Permissions[Permissions["V"] = 1] = "V";
/**
* modify permission
*/
Permissions[Permissions["M"] = 2] = "M";
/**
* delete permission
*/
Permissions[Permissions["D"] = 3] = "D";
/**
* change rights permission
*/
Permissions[Permissions["CR"] = 4] = "CR";
})(Permissions = PermissionUtil.Permissions || (PermissionUtil.Permissions = {}));
/**
* Permission codes in ascending order.
*/
var permissionHierarchy = [Permissions.RV, Permissions.V, Permissions.M, Permissions.D, Permissions.CR];
/**
* Given a permission, returns the permission and all implied permissions.
*
* @param highestPermission highest permission
*/
var getAllPermissions = function (highestPermission) {
var givenPermIndex = permissionHierarchy.indexOf(highestPermission);
if (givenPermIndex === -1) {
throw new Error("Invalid permission given " + highestPermission);
}
// return highest permission with all implied permissions
// (slice does not return the element identified by the second arg 'end', so +1)
return permissionHierarchy.slice(0, givenPermIndex + 1);
};
/**
* Given a user's highest permission, returns all included permissions.
*
* @param highestUserPermissionString the user's highest permission.
*/
PermissionUtil.allUserPermissions = function (highestUserPermissionString) {
var perm = Permissions[highestUserPermissionString];
return getAllPermissions(perm);
};
})(PermissionUtil || (PermissionUtil = {}));
//# sourceMappingURL=permission-util.js.map