diffusion
Version:
Diffusion JavaScript client
174 lines (173 loc) • 6.37 kB
JavaScript
"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;