UNPKG

diffusion

Version:

Diffusion JavaScript client

35 lines (34 loc) 1.71 kB
"use strict"; /** * @module Services.Security */ Object.defineProperty(exports, "__esModule", { value: true }); exports.read = void 0; var permission_1 = require("./../../features/security/permission"); var Codec = require("./../../io/codec"); var BEES = require("./../../serialisers/byte-encoded-enum-serialiser"); var role_1 = require("./role"); /** * Read a {@link Role} from the stream * * @param bis the input stream * @return the {@link Role} that was read */ function read(bis) { var name = Codec.readString(bis); var global = Codec.readCollection(bis, function () { return (BEES.read(bis, permission_1.GlobalPermissionCode)); }) // map the codes to the string values that the user is expecting .map(function (code) { return permission_1.GlobalPermissionCode[code]; }); var defaultPermissions = Codec.readCollection(bis, function () { return (BEES.read(bis, permission_1.PathPermissionCode)); }) // map the codes to the string values that the user is expecting .map(function (code) { return permission_1.PathPermissionCode[code]; }); var topic = Codec.readDictionary(bis, function () { return Codec.readCollection(bis, function () { return (BEES.read(bis, permission_1.PathPermissionCode)); }) // map the codes to the string values that the user is expecting .map(function (code) { return permission_1.PathPermissionCode[code]; }); }); var roles = Codec.readCollection(bis, Codec.readString); var lockingPrincipal = Codec.readBoolean(bis) ? Codec.readString(bis) : undefined; return new role_1.RoleImpl(name, global, defaultPermissions, topic, roles, lockingPrincipal); } exports.read = read;