Compare commits

...
2 Commits
Author SHA1 Message Date
Anderson Feitosa 264077289b Merge pull request #176 from dadosfera/catalog-permissions
FIX: renamed catalog create permission
2022-11-14 15:52:04 -03:00
Gabriel Rosa 14c686cff4 FIX: renamed catalog create permission
- Catalog controller using permission decorator on every route
2022-11-14 15:40:38 -03:00
3 changed files with 58 additions and 33 deletions
+1 -1
View File
@@ -3300,7 +3300,7 @@
"info": {
"title": "Maestro - main",
"description": "Documentation for Maestro gateway",
"version": "11.11.2022 - 12:24",
"version": "14.11.2022 - 15:37",
"contact": {}
},
"tags": [],
+4 -4
View File
@@ -297,12 +297,12 @@ export const PERMISSIONS_GROUPS = {
},
CREATE: {
seqid: 19,
claim: 'POST /catalog',
claim: 'catalog:create',
usage: PermissionUsages.INTERNAL,
name: {
'pt-br': 'Criar atributos no catálogo',
'en-us': 'Create attributes',
'es-es': 'Crear atributos',
'pt-br': 'Criar Ativos',
'en-us': 'Create Assets',
'es-es': 'Crear Activos',
},
},
UPDATE: {
+53 -28
View File
@@ -14,8 +14,8 @@ import {
} from '@nestjs/common';
import { ApiTags } from '@nestjs/swagger';
import {
AuthenticateCondition,
Authenticated,
RequireSomePermission,
} from '../../authentication/authentication.decorator';
import { PERMISSIONS_GROUPS } from '../../authentication/permissions.enum';
import { CatalogService } from './catalog.service';
@@ -34,36 +34,9 @@ import {
IUpdateDataRequest,
} from './dtos';
const catalogPermissions = PERMISSIONS_GROUPS.CATALOG.permissions;
@ApiTags('Catalog')
@Controller('catalog')
@Authenticated()
@AuthenticateCondition((req, user: RequestUser) => {
if (user.permissions.includes(catalogPermissions.DATA_MANAGER.seqid))
return true;
if (req.path.includes('/manage-permissions')) return true;
let action: keyof typeof catalogPermissions;
switch (req.method) {
case 'POST':
case 'PUT':
action = 'UPDATE';
break;
case 'DELETE':
if (req.path.includes('/comment')) action = 'UPDATE';
else action = req.method;
break;
default:
action = req.method as 'GET';
}
return user.permissions.includes(
PERMISSIONS_GROUPS.CATALOG.permissions[action].seqid,
);
})
export class CatalogController {
logger: DadosferaLogger;
constructor(
@@ -75,6 +48,10 @@ export class CatalogController {
}
@Get()
@RequireSomePermission(
PERMISSIONS_GROUPS.CATALOG.permissions.GET,
PERMISSIONS_GROUPS.CATALOG.permissions.DATA_MANAGER,
)
async catalogAll(
@User() user: RequestUser,
@Query() query,
@@ -110,6 +87,10 @@ export class CatalogController {
}
@Get('tags')
@RequireSomePermission(
PERMISSIONS_GROUPS.CATALOG.permissions.GET,
PERMISSIONS_GROUPS.CATALOG.permissions.DATA_MANAGER,
)
async findAllTags(@Body() body) {
this.logger.info(`/catalog - ON FIND ALL TAGS ROUTE`, {
user: body.info.user_id,
@@ -129,6 +110,10 @@ export class CatalogController {
}
@Get('data-asset/:id')
@RequireSomePermission(
PERMISSIONS_GROUPS.CATALOG.permissions.GET,
PERMISSIONS_GROUPS.CATALOG.permissions.DATA_MANAGER,
)
async getDataAsset(
@User() user: RequestUser,
@Headers() headers,
@@ -183,6 +168,10 @@ export class CatalogController {
}
@Get('data-asset/rls/:id')
@RequireSomePermission(
PERMISSIONS_GROUPS.CATALOG.permissions.GET,
PERMISSIONS_GROUPS.CATALOG.permissions.DATA_MANAGER,
)
async getDataAssetRls(
@User() user: RequestUser,
@Headers() headers,
@@ -237,6 +226,10 @@ export class CatalogController {
}
@Get('data-asset/:id/columns-metadata')
@RequireSomePermission(
PERMISSIONS_GROUPS.CATALOG.permissions.GET,
PERMISSIONS_GROUPS.CATALOG.permissions.DATA_MANAGER,
)
async getDataAssetColumnsMetadata(
@User() user: RequestUser,
@Headers('Dadosfera-Lang') language,
@@ -273,6 +266,10 @@ export class CatalogController {
}
@Get('data-asset/:id/preview')
@RequireSomePermission(
PERMISSIONS_GROUPS.CATALOG.permissions.GET,
PERMISSIONS_GROUPS.CATALOG.permissions.DATA_MANAGER,
)
async getDataAssetPreview(
@User() user: RequestUser,
@Headers('Dadosfera-lang') language,
@@ -308,6 +305,10 @@ export class CatalogController {
}
@Get('data-asset/:id/docs')
@RequireSomePermission(
PERMISSIONS_GROUPS.CATALOG.permissions.GET,
PERMISSIONS_GROUPS.CATALOG.permissions.DATA_MANAGER,
)
async getDataAssetDocs(
@User() user: RequestUser,
@Headers('Dadosfera-Lang') language,
@@ -343,6 +344,10 @@ export class CatalogController {
}
@Put('data-asset/:id')
@RequireSomePermission(
PERMISSIONS_GROUPS.CATALOG.permissions.UPDATE,
PERMISSIONS_GROUPS.CATALOG.permissions.DATA_MANAGER,
)
async updateDataAsset(
@User() user: RequestUser,
@Headers('Dadosfera-Lang') language,
@@ -372,6 +377,10 @@ export class CatalogController {
}
@Post('data-asset/:id/docs')
@RequireSomePermission(
PERMISSIONS_GROUPS.CATALOG.permissions.UPDATE,
PERMISSIONS_GROUPS.CATALOG.permissions.DATA_MANAGER,
)
async manageDataAssetDocs(
@User() user: RequestUser,
@Headers() headers,
@@ -440,6 +449,10 @@ export class CatalogController {
}
@Post()
@RequireSomePermission(
PERMISSIONS_GROUPS.CATALOG.permissions.CREATE,
PERMISSIONS_GROUPS.CATALOG.permissions.DATA_MANAGER,
)
async createDataAsset(
@User() user: RequestUser,
@Body() body: ICreateDataAsset,
@@ -460,6 +473,10 @@ export class CatalogController {
}
@Post('data-asset/:id/comment')
@RequireSomePermission(
PERMISSIONS_GROUPS.CATALOG.permissions.UPDATE,
PERMISSIONS_GROUPS.CATALOG.permissions.DATA_MANAGER,
)
async commentOnDataAsset(
@Param('id') id: string,
@User() user: RequestUser,
@@ -482,6 +499,10 @@ export class CatalogController {
}
@Delete('data-asset/:id')
@RequireSomePermission(
PERMISSIONS_GROUPS.CATALOG.permissions.DELETE,
PERMISSIONS_GROUPS.CATALOG.permissions.DATA_MANAGER,
)
async deleteDataAsset(
@Param('id') data_asset_id: string,
@User() user: RequestUser,
@@ -504,6 +525,10 @@ export class CatalogController {
}
@Delete('data-asset/:id/comment')
@RequireSomePermission(
PERMISSIONS_GROUPS.CATALOG.permissions.UPDATE,
PERMISSIONS_GROUPS.CATALOG.permissions.DATA_MANAGER,
)
async deleteComment(
@Param('id') id: string,
@User() user: RequestUser,