UNPKG

diffusion

Version:

Diffusion JavaScript client

33 lines (29 loc) 1.24 kB
var AuthenticationResponse = require('services/security/authentication-response'); var TypeCode = require('services/security/authentication-response').TypeCode; var BEES = require('serialisers/byte-encoded-enum-serialiser'); var Codec = require('io/codec'); module.exports = { read : function(bis) { var type = BEES.read(bis, TypeCode); switch (type) { case TypeCode.ABSTAIN : return AuthenticationResponse.ABSTAIN; case TypeCode.ALLOW : return AuthenticationResponse.ALLOW; case TypeCode.ALLOW_WITH_RESULT : return AuthenticationResponse.allow({ roles : Codec.readCollection(bis, Codec.readString), properties : Codec.readDictionary(bis, Codec.readString) }); default: return AuthenticationResponse.DENY; } }, write : function(bos, response) { BEES.write(bos, response.type); if (response.type === TypeCode.ALLOW_WITH_RESULT) { Codec.writeCollection(bos, response.result.roles, Codec.writeString); Codec.writeDictionary(bos, response.result.properties, Codec.writeString); } } };