diffusion
Version:
Diffusion JavaScript client
26 lines (19 loc) • 1.04 kB
JavaScript
var Codec = require('io/codec');
var Configuration = require('features/security').SystemAuthentication;
var ByteEncodedEnumSerialiser = require('serialisers/byte-encoded-enum-serialiser');
var SystemPrincipalSerialiser = require('./system-principal-serialiser');
var serialiser = {
read : function(input) {
var principals = Codec.readCollection(input, SystemPrincipalSerialiser.read);
var action = ByteEncodedEnumSerialiser.read(input, Configuration.CONNECTION_ACTION);
var roles = Codec.readCollection(input, Codec.readString);
return new Configuration(principals, action.value, roles);
},
write : function(output, value) {
Codec.writeCollection(output, value.principals, SystemPrincipalSerialiser.write);
var action = Configuration.CONNECTION_ACTION.fromString(value.anonymous.action);
Codec.writeByte(output, action.id);
Codec.writeCollection(output, value.anonymous.roles, Codec.writeString);
}
};
module.exports = serialiser;