From fb0c659cd1c298367c93e6521ed87964f0eaab05 Mon Sep 17 00:00:00 2001 From: Gabriel Rosa Date: Thu, 3 Nov 2022 10:27:50 -0300 Subject: [PATCH] FIX: permissions for catalog --- .github/workflows/deploy-manually.yml | 7 ++++--- src/authentication/permissions.enum.ts | 7 ++++--- src/modules/catalog/catalog.controller.ts | 10 +++++++--- src/modules/pipelinesV2/pipelines.controller.ts | 2 +- 4 files changed, 16 insertions(+), 10 deletions(-) diff --git a/.github/workflows/deploy-manually.yml b/.github/workflows/deploy-manually.yml index e9b9626..5257f3d 100644 --- a/.github/workflows/deploy-manually.yml +++ b/.github/workflows/deploy-manually.yml @@ -26,9 +26,9 @@ jobs: - name: Extract Environment run: | if [ ${EVENT} == "workflow_dispatch" ]; then - echo "##[set-output name=environment;]$(echo ${DEPLOY_ENV})" + echo "environment=${DEPLOY_ENV}" >> $GITHUB_OUTPUT elif [ ${GITHUB_REF} == "refs/heads/main" ]; then - echo "##[set-output name=environment;]$(echo "prd")" + echo "environment=prd" >> $GITHUB_OUTPUT fi id: extract_environment @@ -68,7 +68,8 @@ jobs: EVENT: ${{ github.event_name }} IMAGE_TAG: ${{ needs.semantic_release.outputs.new_release_version }} ENV: ${{ needs.extract_environment.outputs.environment }} - run: echo ${GITHUB_REF#refs/heads/} + BRANCH: ${{ needs.extract_environment.outputs.environment }} + run: echo "### Deploy da branch `${GITHUB_REF#refs/heads/}` no ambiente $ENV :rocket:" >> $GITHUB_STEP_SUMMARY - name: Checkout uses: actions/checkout@v2 diff --git a/src/authentication/permissions.enum.ts b/src/authentication/permissions.enum.ts index 537bb1d..8579f3f 100644 --- a/src/authentication/permissions.enum.ts +++ b/src/authentication/permissions.enum.ts @@ -330,9 +330,10 @@ export const PERMISSIONS_GROUPS = { claim: 'catalog:data_manager', usage: PermissionUsages.INTERNAL, name: { - 'pt-br': 'Vizualizar todos os recursos do catálogo.', - 'en-us': 'View all data assets.', - 'es-es': 'Ver todos los activos de datos', + 'pt-br': + 'Gerente do catálogo. Consegue vizualizar e editar todos os ativos.', + 'en-us': 'Catalog manager. Able to view and edit all assets.', + 'es-es': 'Gestor de catálogos. Puede ver y editar todos los activos.', }, }, }, diff --git a/src/modules/catalog/catalog.controller.ts b/src/modules/catalog/catalog.controller.ts index db21bfc..9f614c4 100644 --- a/src/modules/catalog/catalog.controller.ts +++ b/src/modules/catalog/catalog.controller.ts @@ -33,12 +33,16 @@ import { IUpdateDataRequest, } from './dtos'; +const catalogPermissions = PERMISSIONS_GROUPS.CATALOG.permissions; @ApiTags('Catalog') @Controller('catalog') @Authenticated() -@AuthenticateCondition((req, user) => { +@AuthenticateCondition((req, user: RequestUser) => { + if (user.permissions.includes(catalogPermissions.DATA_MANAGER.seqid)) + return true; + if (req.path.includes('/manage-permissions')) return true; - let action; + let action: keyof typeof catalogPermissions; switch (req.method) { case 'POST': @@ -47,7 +51,7 @@ import { break; default: - action = req.method; + action = req.method as 'GET' | 'DELETE'; } return user.permissions.includes( diff --git a/src/modules/pipelinesV2/pipelines.controller.ts b/src/modules/pipelinesV2/pipelines.controller.ts index 6dce112..8892007 100644 --- a/src/modules/pipelinesV2/pipelines.controller.ts +++ b/src/modules/pipelinesV2/pipelines.controller.ts @@ -155,7 +155,7 @@ export class PipelinesController { .then((res) => { //{pipeline:{tables: {tables: [], input_id: ''}}} let tables = JSON.parse(res.pipeline.config.tables); - if (tables?.tables) tables = tables?.tables; + if (tables?.tables) tables = tables.tables; Object.assign(res.pipeline, { transformations: res.pipeline.transformations ? JSON.parse(res.pipeline.transformations)