diffusion
Version:
Diffusion JavaScript client
35 lines (34 loc) • 1.71 kB
JavaScript
;
/**
* @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;