UNPKG

deep-package-manager

Version:
103 lines (76 loc) 2.63 kB
/** * Created by CCristi on 7/7/16. */ 'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.SecuredProvider = undefined; var _PolicyTranslator = require('../../../../Helpers/PolicyTranslator'); var _CognitoIdentityService = require('../../CognitoIdentityService'); var _AbstractProvider = require('./AbstractProvider'); var _MissingAccountMicroserviceException = require('../../Exception/MissingAccountMicroserviceException'); var _deepCore = require('deep-core'); var _deepCore2 = _interopRequireDefault(_deepCore); var _path = require('path'); var _path2 = _interopRequireDefault(_path); var _fs = require('fs'); var _fs2 = _interopRequireDefault(_fs); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } class SecuredProvider extends _AbstractProvider.AbstractProvider { /** * @param {Provisioning/Instance} provisioning */ constructor(provisioning) { if (!provisioning.property.accountMicroservice) { throw new _MissingAccountMicroserviceException.MissingAccountMicroserviceException(); } super(provisioning); this._translator = new _PolicyTranslator.PolicyTranslator(provisioning.property.config); } /** * @returns {Core.AWS.IAM.Policy} */ _getAuthenticatedPolicy() { let authDefinition = this._rolePath(_CognitoIdentityService.CognitoIdentityService.ROLE_AUTH); if (_fs2.default.existsSync(authDefinition)) { return this._translator.toIAMPolicy(require(authDefinition)); } return this._generateDefaultPolicy(); } /** * @returns {Core.AWS.IAM.Policy} */ _getUnauthenticatedPolicy() { let unAuthDefinition = this._rolePath(_CognitoIdentityService.CognitoIdentityService.ROLE_UNAUTH); if (_fs2.default.existsSync(unAuthDefinition)) { return this._translator.toIAMPolicy(require(unAuthDefinition)); } return this._generateDefaultPolicy(); } /** * @returns {Core.AWS.IAM.Policy} * @private */ _generateDefaultPolicy() { let policy = new _deepCore2.default.AWS.IAM.Policy(); let denyStmt = this.lambdaService.generateDenyInvokeFunctionStatement(() => true); policy.statement.add(denyStmt); return policy; } /** * @param {String} roleName * @returns {String} * @private */ _rolePath(roleName) { return _path2.default.join(this.accountMicroservice.autoload.roles, `${roleName}.json`); } /** * @returns {Microservice|Instance} */ get accountMicroservice() { return this.provisioning.property.accountMicroservice; } } exports.SecuredProvider = SecuredProvider;