UNPKG

diffusion

Version:

Diffusion JavaScript client

174 lines (173 loc) 6.37 kB
"use strict"; /** * @module Security */ Object.defineProperty(exports, "__esModule", { value: true }); exports.SecurityScriptBuilderImpl = void 0; var util_1 = require("./../../features/security/util"); var require_non_null_1 = require("./../../util/require-non-null"); /** * Implementation of the {@link SecurityScriptBuilder} interface */ var SecurityScriptBuilderImpl = /** @class */ (function () { function SecurityScriptBuilderImpl() { /** * The security script built so far */ this.commands = ''; } /** * Utility function that appends a new line * if commands already has lines */ SecurityScriptBuilderImpl.prototype.maybeApppendNewLine = function () { if (this.commands.length > 0) { this.commands += '\n'; } }; /** * @inheritdoc */ SecurityScriptBuilderImpl.prototype.build = function () { return this.commands; }; /** * Convert the security script builder to a string * * @return a string representation on this object */ SecurityScriptBuilderImpl.prototype.toString = function () { return "ConfigurationScriptBuilder [" + this.commands + "]"; }; /** * @inheritdoc */ SecurityScriptBuilderImpl.prototype.setRolesForAnonymousSessions = function (roles) { var nonNullRoles = require_non_null_1.requireNonNull(roles, 'roles'); this.maybeApppendNewLine(); this.commands += 'set roles for anonymous sessions '; this.commands += util_1.setToString(nonNullRoles); return this; }; /** * @inheritdoc */ SecurityScriptBuilderImpl.prototype.setRolesForNamedSessions = function (roles) { var nonNullRoles = require_non_null_1.requireNonNull(roles, 'roles'); this.maybeApppendNewLine(); this.commands += 'set roles for named sessions '; this.commands += util_1.setToString(nonNullRoles); return this; }; /** * @inheritdoc */ SecurityScriptBuilderImpl.prototype.setGlobalPermissions = function (role, permissions) { var nonNullRole = require_non_null_1.requireNonNull(role, 'role'); var nonNullPermissions = require_non_null_1.requireNonNull(permissions, 'permissions'); this.maybeApppendNewLine(); this.commands += 'set ' + util_1.quoteAndEscape(nonNullRole) + ' permissions '; this.commands += util_1.permissionsToString(nonNullPermissions); return this; }; /** * @inheritdoc */ SecurityScriptBuilderImpl.prototype.setDefaultPathPermissions = function (role, permissions) { var nonNullRole = require_non_null_1.requireNonNull(role, 'role'); var nonNullPermissions = require_non_null_1.requireNonNull(permissions, 'permissions'); this.maybeApppendNewLine(); this.commands += 'set ' + util_1.quoteAndEscape(nonNullRole) + ' default path permissions '; this.commands += util_1.permissionsToString(nonNullPermissions); return this; }; /** * @inheritdoc */ SecurityScriptBuilderImpl.prototype.removePathPermissions = function (role, path) { var nonNullRole = require_non_null_1.requireNonNull(role, 'role'); var nonNullPath = require_non_null_1.requireNonNull(path, 'path'); this.maybeApppendNewLine(); this.commands += 'remove ' + util_1.quoteAndEscape(nonNullRole) + ' permissions for path ' + util_1.quoteAndEscape(nonNullPath); return this; }; /** * @inheritdoc */ SecurityScriptBuilderImpl.prototype.setPathPermissions = function (role, path, permissions) { var nonNullRole = require_non_null_1.requireNonNull(role, 'role'); var nonNullPath = require_non_null_1.requireNonNull(path, 'path'); var nonNullPermissions = require_non_null_1.requireNonNull(permissions, 'permissions'); this.maybeApppendNewLine(); this.commands += 'set ' + util_1.quoteAndEscape(nonNullRole) + ' path ' + util_1.quoteAndEscape(nonNullPath) + ' permissions '; this.commands += util_1.permissionsToString(nonNullPermissions); return this; }; /** * @inheritdoc */ SecurityScriptBuilderImpl.prototype.setRoleIncludes = function (role, included) { var nonNullRole = require_non_null_1.requireNonNull(role, 'role'); var nonNullIncludedRoles = require_non_null_1.requireNonNull(included, 'includedRoles'); this.maybeApppendNewLine(); this.commands += 'set ' + util_1.quoteAndEscape(nonNullRole) + ' includes '; this.commands += util_1.setToString(nonNullIncludedRoles); return this; }; /** * @inheritdoc */ SecurityScriptBuilderImpl.prototype.setRoleLockedByPrincipal = function (role, lockingPrincipal) { var nonNullRole = require_non_null_1.requireNonNull(role, 'role'); var nonNullPrincipal = require_non_null_1.requireNonNull(lockingPrincipal, 'lockingPrincipal'); this.maybeApppendNewLine(); this.commands += 'set role ' + util_1.quoteAndEscape(nonNullRole) + ' locked by principal ' + util_1.quoteAndEscape(nonNullPrincipal); return this; }; /** * @inheritdoc */ SecurityScriptBuilderImpl.prototype.isolatePath = function (path) { var nonNullPath = require_non_null_1.requireNonNull(path, 'path'); this.maybeApppendNewLine(); this.commands += 'isolate path ' + util_1.quoteAndEscape(nonNullPath); return this; }; /** * @inheritdoc */ SecurityScriptBuilderImpl.prototype.deisolatePath = function (path) { var nonNullPath = require_non_null_1.requireNonNull(path, 'path'); this.maybeApppendNewLine(); this.commands += 'deisolate path ' + util_1.quoteAndEscape(nonNullPath); return this; }; return SecurityScriptBuilderImpl; }()); exports.SecurityScriptBuilderImpl = SecurityScriptBuilderImpl;