UNPKG

diffusion

Version:

Diffusion JavaScript client

80 lines (64 loc) 2.96 kB
var _implements = require('util/interface')._implements; var util = require('features/security/util'); var api = require('../../../features/security'); var requireNonNull = require('util/require-non-null'); var permissionsToString = util.permissionsToString; var quoteAndEscape = util.quoteAndEscape; var rolesToString = util.rolesToString; var SecurityScriptBuilder = _implements(api.SecurityScriptBuilder, function SecurityScriptBuilderImpl(commands) { commands = commands || ""; var withCommand = function (command) { if (commands) { return new SecurityScriptBuilder(commands + '\n' + command); } return new SecurityScriptBuilder(command); }; this.build = function () { return commands; }; this.toString = function () { return 'ConfigurationScriptBuilder [' + commands + ']'; }; this.setRolesForAnonymousSessions = function (roles) { return withCommand("set roles for anonymous sessions " + rolesToString(requireNonNull(roles, "roles"))); }; this.setRolesForNamedSessions = function (roles) { return withCommand("set roles for named sessions " + rolesToString(requireNonNull(roles, "roles"))); }; this.setGlobalPermissions = function (role, permissions) { return withCommand("set " + quoteAndEscape(requireNonNull(role, "role")) + " permissions " + permissionsToString(requireNonNull(permissions, "permissions"))); }; this.setDefaultTopicPermissions = function (role, permissions) { return withCommand("set " + quoteAndEscape(requireNonNull(role, "role")) + " default topic permissions " + permissionsToString(requireNonNull(permissions, "permissions"))); }; this.removeTopicPermissions = function (role, path) { return withCommand("remove " + quoteAndEscape(requireNonNull(role, "role")) + " permissions for topic " + quoteAndEscape(requireNonNull(path, "path"))); }; this.setTopicPermissions = function (role, path, permissions) { return withCommand("set " + quoteAndEscape(requireNonNull(role, "role")) + " topic " + quoteAndEscape(requireNonNull(path, "path")) + " permissions " + permissionsToString(requireNonNull(permissions, "permissions"))); }; this.setRoleIncludes = function (role, included) { return withCommand("set " + quoteAndEscape(requireNonNull(role, "role")) + " includes " + rolesToString(requireNonNull(included, "included roles"))); }; }); module.exports = SecurityScriptBuilder;