UNPKG

azurite

Version:

An open source Azure Storage API compatible server

66 lines 6.72 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.OperationAccountSASPermission = void 0; const tslib_1 = require("tslib"); const operation_1 = tslib_1.__importDefault(require("../generated/artifacts/operation")); const AccountSASPermissions_1 = require("../../common/authentication/AccountSASPermissions"); const AccountSASResourceTypes_1 = require("../../common/authentication/AccountSASResourceTypes"); const AccountSASServices_1 = require("../../common/authentication/AccountSASServices"); class OperationAccountSASPermission { constructor(service, resourceType, permission) { this.service = service; this.resourceType = resourceType; this.permission = permission; } validate(services, resourceTypes, permissions) { return (this.validateServices(services) && this.validateResourceTypes(resourceTypes) && this.validatePermissions(permissions)); } validateServices(services) { return services.toString().includes(this.service); } validateResourceTypes(resourceTypes) { for (const p of this.resourceType) { if (resourceTypes.toString().includes(p)) { return true; } } return false; } validatePermissions(permissions) { for (const p of this.permission) { if (permissions.toString().includes(p)) { return true; } } return false; } } exports.OperationAccountSASPermission = OperationAccountSASPermission; // See https://docs.microsoft.com/en-us/rest/api/storageservices/constructing-an-account-sas // TODO: Check all required operations const OPERATION_ACCOUNT_SAS_PERMISSIONS = new Map(); OPERATION_ACCOUNT_SAS_PERMISSIONS.set(operation_1.default.Service_GetProperties, new OperationAccountSASPermission(AccountSASServices_1.AccountSASService.Queue, AccountSASResourceTypes_1.AccountSASResourceType.Service, AccountSASPermissions_1.AccountSASPermission.Read)); OPERATION_ACCOUNT_SAS_PERMISSIONS.set(operation_1.default.Service_SetProperties, new OperationAccountSASPermission(AccountSASServices_1.AccountSASService.Queue, AccountSASResourceTypes_1.AccountSASResourceType.Service, AccountSASPermissions_1.AccountSASPermission.Write)); OPERATION_ACCOUNT_SAS_PERMISSIONS.set(operation_1.default.Service_ListQueuesSegment, new OperationAccountSASPermission(AccountSASServices_1.AccountSASService.Queue, AccountSASResourceTypes_1.AccountSASResourceType.Service, AccountSASPermissions_1.AccountSASPermission.List)); OPERATION_ACCOUNT_SAS_PERMISSIONS.set(operation_1.default.Service_GetStatistics, new OperationAccountSASPermission(AccountSASServices_1.AccountSASService.Queue, AccountSASResourceTypes_1.AccountSASResourceType.Service, AccountSASPermissions_1.AccountSASPermission.Read)); OPERATION_ACCOUNT_SAS_PERMISSIONS.set(operation_1.default.Queue_Create, new OperationAccountSASPermission(AccountSASServices_1.AccountSASService.Queue, AccountSASResourceTypes_1.AccountSASResourceType.Container, AccountSASPermissions_1.AccountSASPermission.Create + AccountSASPermissions_1.AccountSASPermission.Write)); OPERATION_ACCOUNT_SAS_PERMISSIONS.set(operation_1.default.Queue_Delete, new OperationAccountSASPermission(AccountSASServices_1.AccountSASService.Queue, AccountSASResourceTypes_1.AccountSASResourceType.Container, AccountSASPermissions_1.AccountSASPermission.Delete)); OPERATION_ACCOUNT_SAS_PERMISSIONS.set(operation_1.default.Queue_GetProperties, new OperationAccountSASPermission(AccountSASServices_1.AccountSASService.Queue, AccountSASResourceTypes_1.AccountSASResourceType.Container, AccountSASPermissions_1.AccountSASPermission.Read)); OPERATION_ACCOUNT_SAS_PERMISSIONS.set(operation_1.default.Queue_GetPropertiesWithHead, new OperationAccountSASPermission(AccountSASServices_1.AccountSASService.Queue, AccountSASResourceTypes_1.AccountSASResourceType.Container, AccountSASPermissions_1.AccountSASPermission.Read)); OPERATION_ACCOUNT_SAS_PERMISSIONS.set(operation_1.default.Queue_SetMetadata, new OperationAccountSASPermission(AccountSASServices_1.AccountSASService.Queue, AccountSASResourceTypes_1.AccountSASResourceType.Container, AccountSASPermissions_1.AccountSASPermission.Write)); OPERATION_ACCOUNT_SAS_PERMISSIONS.set(operation_1.default.Queue_GetAccessPolicy, new OperationAccountSASPermission(AccountSASServices_1.AccountSASService.Queue, AccountSASResourceTypes_1.AccountSASResourceType.Container, "" // Not allowed. )); OPERATION_ACCOUNT_SAS_PERMISSIONS.set(operation_1.default.Queue_GetAccessPolicyWithHead, new OperationAccountSASPermission(AccountSASServices_1.AccountSASService.Queue, AccountSASResourceTypes_1.AccountSASResourceType.Container, "" // Not allowed. )); OPERATION_ACCOUNT_SAS_PERMISSIONS.set(operation_1.default.Queue_SetAccessPolicy, new OperationAccountSASPermission(AccountSASServices_1.AccountSASService.Queue, AccountSASResourceTypes_1.AccountSASResourceType.Container, "" // Not allowed. )); OPERATION_ACCOUNT_SAS_PERMISSIONS.set(operation_1.default.Messages_Enqueue, new OperationAccountSASPermission(AccountSASServices_1.AccountSASService.Queue, AccountSASResourceTypes_1.AccountSASResourceType.Object, AccountSASPermissions_1.AccountSASPermission.Add)); OPERATION_ACCOUNT_SAS_PERMISSIONS.set(operation_1.default.Messages_Dequeue, new OperationAccountSASPermission(AccountSASServices_1.AccountSASService.Queue, AccountSASResourceTypes_1.AccountSASResourceType.Object, AccountSASPermissions_1.AccountSASPermission.Process)); OPERATION_ACCOUNT_SAS_PERMISSIONS.set(operation_1.default.Messages_Peek, new OperationAccountSASPermission(AccountSASServices_1.AccountSASService.Queue, AccountSASResourceTypes_1.AccountSASResourceType.Object, AccountSASPermissions_1.AccountSASPermission.Read)); OPERATION_ACCOUNT_SAS_PERMISSIONS.set(operation_1.default.MessageId_Delete, new OperationAccountSASPermission(AccountSASServices_1.AccountSASService.Queue, AccountSASResourceTypes_1.AccountSASResourceType.Container, AccountSASPermissions_1.AccountSASPermission.Process)); OPERATION_ACCOUNT_SAS_PERMISSIONS.set(operation_1.default.Messages_Clear, new OperationAccountSASPermission(AccountSASServices_1.AccountSASService.Queue, AccountSASResourceTypes_1.AccountSASResourceType.Container, AccountSASPermissions_1.AccountSASPermission.Delete)); OPERATION_ACCOUNT_SAS_PERMISSIONS.set(operation_1.default.MessageId_Update, new OperationAccountSASPermission(AccountSASServices_1.AccountSASService.Queue, AccountSASResourceTypes_1.AccountSASResourceType.Container, AccountSASPermissions_1.AccountSASPermission.Update)); exports.default = OPERATION_ACCOUNT_SAS_PERMISSIONS; //# sourceMappingURL=OperationAccountSASPermission.js.map