UNPKG

@dasch-swiss/dsp-js

Version:

JavaScript library that handles API requests to Knora

62 lines 2.17 kB
/** * 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