UNPKG

relution-sdk

Version:

Relution Software Development Kit for TypeScript and JavaScript

71 lines 7.3 kB
/* * @file security/Authorization.ts * Relution SDK * * Created by Thomas Beckmann on 28.04.2016 * Copyright 2016 M-Way Solutions GmbH * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** * @module security */ /** */ "use strict"; function cloneCredentials(credentials) { return JSON.parse(JSON.stringify(credentials)); } exports.cloneCredentials = cloneCredentials; function freezeCredentials(credentials) { return Object.freeze(credentials); } exports.freezeCredentials = freezeCredentials; /** * turns the object deeply immutable. * * @param authorization to freeze. * @return {Authorization} authorization for convenience. * * @internal for library use only. */ function freezeAuthorization(authorization) { authorization.roles = Object.freeze(authorization.roles); return Object.freeze(authorization); } exports.freezeAuthorization = freezeAuthorization; /** * Virtual role for all authenticated users. */ exports.ROLE_AUTHENTICATED = 'user.authenticated'; /** * Administrator's role name. Users in this role should have full access to * all services in the system. */ exports.ROLE_ADMIN = 'ADMIN'; /** * The name of the predefined role, user.anyone, that all users and groups * belong to. */ exports.USER_ANYONE = 'user.anyone'; /** * immutable [[Authorization]] representing the anonymous user. * * @type {Authorization} */ exports.ANONYMOUS_AUTHORIZATION = freezeAuthorization({ name: void 0, roles: [ exports.USER_ANYONE ] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZWN1cml0eS9hdXRoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FrQkc7QUFDSDs7R0FFRztBQUNILE1BQU07O0FBc0JOLDBCQUFtRSxXQUF5QjtJQUUxRixNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7QUFDakQsQ0FBQztBQUhlLHdCQUFnQixtQkFHL0IsQ0FBQTtBQUNELDJCQUFvRSxXQUF5QjtJQUUzRixNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztBQUNwQyxDQUFDO0FBSGUseUJBQWlCLG9CQUdoQyxDQUFBO0FBa0JEOzs7Ozs7O0dBT0c7QUFDSCw2QkFBb0MsYUFBNEI7SUFDOUQsYUFBYSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN6RCxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztBQUN0QyxDQUFDO0FBSGUsMkJBQW1CLHNCQUdsQyxDQUFBO0FBRUQ7O0dBRUc7QUFDVSwwQkFBa0IsR0FBRyxvQkFBb0IsQ0FBQztBQUN2RDs7O0dBR0c7QUFDVSxrQkFBVSxHQUFHLE9BQU8sQ0FBQztBQUNsQzs7O0dBR0c7QUFDVSxtQkFBVyxHQUFHLGFBQWEsQ0FBQztBQUN6Qzs7OztHQUlHO0FBQ1UsK0JBQXVCLEdBQUcsbUJBQW1CLENBQUM7SUFDekQsSUFBSSxFQUFFLEtBQUssQ0FBQztJQUNaLEtBQUssRUFBRTtRQUNMLG1CQUFXO0tBQ1o7Q0FDRixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBAZmlsZSBzZWN1cml0eS9BdXRob3JpemF0aW9uLnRzXHJcbiAqIFJlbHV0aW9uIFNES1xyXG4gKlxyXG4gKiBDcmVhdGVkIGJ5IFRob21hcyBCZWNrbWFubiBvbiAyOC4wNC4yMDE2XHJcbiAqIENvcHlyaWdodCAyMDE2IE0tV2F5IFNvbHV0aW9ucyBHbWJIXHJcbiAqXHJcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbiAqXHJcbiAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4gKlxyXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiAqL1xyXG4vKipcclxuICogQG1vZHVsZSBzZWN1cml0eVxyXG4gKi9cclxuLyoqICovXHJcblxyXG4vKipcclxuICogc29tZSBKU09OIGxpdGVyYWwgb2Yga2V5L3ZhbHVlIHBhaXJzIHJlcHJlc2VudGluZyBjcmVkZW50aWFscy5cclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ3JlZGVudGlhbHMge1xyXG4gIFtrZXk6IHN0cmluZ106IGFueTtcclxuICBbaW5kZXg6IG51bWJlcl06IGFueTtcclxufVxyXG4vKipcclxuICogdmVyc2lvbiBvZiBbW0NyZWRlbnRpYWxzXV0gdXNlZCBieSBSZWx1dGlvbiBzZXJ2ZXIuXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIExvZ2luT2JqZWN0IGV4dGVuZHMgQ3JlZGVudGlhbHMge1xyXG4gIHVzZXJOYW1lPzogc3RyaW5nO1xyXG4gIG9yZ2FOYW1lPzogc3RyaW5nO1xyXG4gIHBhc3N3b3JkPzogc3RyaW5nO1xyXG4gIC8qKlxyXG4gICAqIHVzZWQgb25seSBpZiBbW3VzZXJOYW1lXV0gaXMgbm90IHNldC5cclxuICAgKi9cclxuICBlbWFpbD86IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNsb25lQ3JlZGVudGlhbHM8Q3JlZGVudGlhbHNUIGV4dGVuZHMgQ3JlZGVudGlhbHM+KGNyZWRlbnRpYWxzOiBDcmVkZW50aWFsc1QpOlxyXG4gICAgQ3JlZGVudGlhbHNUIHtcclxuICByZXR1cm4gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShjcmVkZW50aWFscykpO1xyXG59XHJcbmV4cG9ydCBmdW5jdGlvbiBmcmVlemVDcmVkZW50aWFsczxDcmVkZW50aWFsc1QgZXh0ZW5kcyBDcmVkZW50aWFscz4oY3JlZGVudGlhbHM6IENyZWRlbnRpYWxzVCk6XHJcbiAgICBDcmVkZW50aWFsc1Qge1xyXG4gIHJldHVybiBPYmplY3QuZnJlZXplKGNyZWRlbnRpYWxzKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIHByb3ZpZGVzIGFjY2VzcyBjb250cm9sIHJlbGF0ZWQgaW5mb3JtYXRpb24uXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIEF1dGhvcml6YXRpb24ge1xyXG4gIC8qKlxyXG4gICAqIHRoZSAqVVVJRCogb2YgdGhlIHVzZXIgcmVwcmVzZW50ZWQuXHJcbiAgICpcclxuICAgKiBOb3RpY2UsIG9ubHkgdGhlIFtbQU5PTllNT1VTX0FVVEhPUklaQVRJT05dXSBkb2VzIG5vdCBzcGVjaWZ5IGEgbmFtZS5cclxuICAgKi9cclxuICBuYW1lPzogc3RyaW5nO1xyXG4gIC8qKlxyXG4gICAqIHNlY3VyaXR5IHJvbGVzIHRoZSB1c2VyIGJlbG9uZ3MgdG8sIG5ldmVyIG51bGwuXHJcbiAgICovXHJcbiAgcm9sZXM6IHN0cmluZ1tdO1xyXG59XHJcblxyXG4vKipcclxuICogdHVybnMgdGhlIG9iamVjdCBkZWVwbHkgaW1tdXRhYmxlLlxyXG4gKlxyXG4gKiBAcGFyYW0gYXV0aG9yaXphdGlvbiB0byBmcmVlemUuXHJcbiAqIEByZXR1cm4ge0F1dGhvcml6YXRpb259IGF1dGhvcml6YXRpb24gZm9yIGNvbnZlbmllbmNlLlxyXG4gKlxyXG4gKiBAaW50ZXJuYWwgZm9yIGxpYnJhcnkgdXNlIG9ubHkuXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gZnJlZXplQXV0aG9yaXphdGlvbihhdXRob3JpemF0aW9uOiBBdXRob3JpemF0aW9uKTogQXV0aG9yaXphdGlvbiB7XHJcbiAgYXV0aG9yaXphdGlvbi5yb2xlcyA9IE9iamVjdC5mcmVlemUoYXV0aG9yaXphdGlvbi5yb2xlcyk7XHJcbiAgcmV0dXJuIE9iamVjdC5mcmVlemUoYXV0aG9yaXphdGlvbik7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBWaXJ0dWFsIHJvbGUgZm9yIGFsbCBhdXRoZW50aWNhdGVkIHVzZXJzLlxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IFJPTEVfQVVUSEVOVElDQVRFRCA9ICd1c2VyLmF1dGhlbnRpY2F0ZWQnO1xyXG4vKipcclxuICogQWRtaW5pc3RyYXRvcidzIHJvbGUgbmFtZS4gVXNlcnMgaW4gdGhpcyByb2xlIHNob3VsZCBoYXZlIGZ1bGwgYWNjZXNzIHRvXHJcbiAqIGFsbCBzZXJ2aWNlcyBpbiB0aGUgc3lzdGVtLlxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IFJPTEVfQURNSU4gPSAnQURNSU4nO1xyXG4vKipcclxuICogVGhlIG5hbWUgb2YgdGhlIHByZWRlZmluZWQgcm9sZSwgdXNlci5hbnlvbmUsIHRoYXQgYWxsIHVzZXJzIGFuZCBncm91cHNcclxuICogYmVsb25nIHRvLlxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IFVTRVJfQU5ZT05FXHQ9ICd1c2VyLmFueW9uZSc7XHJcbi8qKlxyXG4gKiBpbW11dGFibGUgW1tBdXRob3JpemF0aW9uXV0gcmVwcmVzZW50aW5nIHRoZSBhbm9ueW1vdXMgdXNlci5cclxuICpcclxuICogQHR5cGUge0F1dGhvcml6YXRpb259XHJcbiAqL1xyXG5leHBvcnQgY29uc3QgQU5PTllNT1VTX0FVVEhPUklaQVRJT04gPSBmcmVlemVBdXRob3JpemF0aW9uKHtcclxuICBuYW1lOiB2b2lkIDAsXHJcbiAgcm9sZXM6IFtcclxuICAgIFVTRVJfQU5ZT05FXHJcbiAgXVxyXG59KTtcclxuIl19