mirror of
https://github.com/dadosfera/maestro.git
synced 2026-11-11 09:39:08 +00:00
FEAT: internationalization of permissions
This commit is contained in:
@@ -10,7 +10,7 @@ import {
|
||||
} from '@nestjs/common';
|
||||
import { ApiTags } from '@nestjs/swagger';
|
||||
import { AuthenticateCondition } from '../../authentication/authentication.decorator';
|
||||
import { Permissions } from '../../authentication/permissions.enum';
|
||||
import { PERMISSIONS } from '../../authentication/permissions.enum';
|
||||
import { CatalogService } from './catalog.service';
|
||||
import { DadosferaLogger } from 'dadosfera-logs';
|
||||
|
||||
@@ -32,7 +32,7 @@ import { DadosferaLogger } from 'dadosfera-logs';
|
||||
action = req.method;
|
||||
}
|
||||
|
||||
return user.permissions.includes(Permissions.CATALOG[action].seqid);
|
||||
return user.permissions.includes(PERMISSIONS.CATALOG[action].seqid);
|
||||
})
|
||||
export class CatalogController {
|
||||
logger: any;
|
||||
|
||||
@@ -12,7 +12,7 @@ import { InputsService } from './inputs.service';
|
||||
import { DadosferaLogger } from 'dadosfera-logs';
|
||||
import { InputsClientService } from 'src/clients/inputs/client.service';
|
||||
import { UpdateInputRequest } from 'src/clients/inputs/interfaces';
|
||||
import { Permissions } from '../../authentication/permissions.enum';
|
||||
import { PERMISSIONS } from '../../authentication/permissions.enum';
|
||||
import { AuthenticateCondition } from 'src/authentication/authentication.decorator';
|
||||
import { ApiOkResponse, ApiTags } from '@nestjs/swagger';
|
||||
import {
|
||||
@@ -41,7 +41,7 @@ import {
|
||||
break;
|
||||
|
||||
case 'PATCH':
|
||||
action = 'UPDATE_PARTIAL';
|
||||
action = 'UPDATE';
|
||||
break;
|
||||
|
||||
default:
|
||||
@@ -55,7 +55,7 @@ import {
|
||||
action = 'GET_ENTITIES';
|
||||
}
|
||||
|
||||
return user.permissions.includes(Permissions.INPUT[action].seqid);
|
||||
return user.permissions.includes(PERMISSIONS.INPUT[action].seqid);
|
||||
})
|
||||
export class InputsController {
|
||||
inputService: InputsService;
|
||||
|
||||
@@ -12,7 +12,7 @@ import { Payload } from '@nestjs/microservices';
|
||||
import { ApiTags } from '@nestjs/swagger';
|
||||
import { OutputsClientService } from 'src/clients/outputs/client.service';
|
||||
import { AuthenticateCondition } from 'src/authentication/authentication.decorator';
|
||||
import { Permissions } from '../../authentication/permissions.enum';
|
||||
import { PERMISSIONS } from '../../authentication/permissions.enum';
|
||||
import { OutputsService } from './outputs.service';
|
||||
import { DadosferaLogger } from 'dadosfera-logs';
|
||||
|
||||
@@ -34,7 +34,7 @@ import { DadosferaLogger } from 'dadosfera-logs';
|
||||
action = req.method;
|
||||
}
|
||||
|
||||
return user.permissions.includes(Permissions.OUTPUT[action].seqid);
|
||||
return user.permissions.includes(PERMISSIONS.OUTPUT[action].seqid);
|
||||
})
|
||||
export class OutputsController {
|
||||
logger: any;
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
import { ApiProperty } from '@nestjs/swagger';
|
||||
|
||||
export class PermissionDto {
|
||||
@ApiProperty()
|
||||
name: string;
|
||||
@ApiProperty()
|
||||
id: number;
|
||||
}
|
||||
|
||||
export class PermissionGroup {
|
||||
@ApiProperty()
|
||||
title: string;
|
||||
@ApiProperty({ type: [PermissionDto] })
|
||||
permissions: PermissionDto[];
|
||||
}
|
||||
|
||||
export class Permission {
|
||||
@ApiProperty()
|
||||
id: string;
|
||||
@ApiProperty()
|
||||
seqid: number;
|
||||
@ApiProperty()
|
||||
name: string;
|
||||
@ApiProperty()
|
||||
claim: string;
|
||||
@ApiProperty()
|
||||
createdAt: string;
|
||||
@ApiProperty()
|
||||
updatedAt: string;
|
||||
}
|
||||
@@ -11,8 +11,14 @@ import { ProtoServices } from 'protospack-v2/dist/lib/Duc';
|
||||
import { PermissionsProtoService as PermissionsServiceInterface } from 'protospack-v2/dist/lib/Duc/interfaces/write-service';
|
||||
import { InjectPermissionsRequest } from 'protospack-v2/dist/lib/Duc/interfaces/messages';
|
||||
import { DadosferaLogger } from 'dadosfera-logs';
|
||||
import { Permissions } from '../../authentication/permissions.enum';
|
||||
import {
|
||||
Permission,
|
||||
PERMISSIONS,
|
||||
PermissionsObject,
|
||||
PermissionUsages,
|
||||
} from '../../authentication/permissions.enum';
|
||||
import ErrorBuilder from '../../utils/ErrorBuilder';
|
||||
import { PermissionGroup } from './dto/entities';
|
||||
|
||||
@Injectable()
|
||||
export class PermissionsClientService
|
||||
@@ -40,8 +46,8 @@ export class PermissionsClientService
|
||||
async onApplicationBootstrap() {
|
||||
this.logger.info('sending permissions to DUC...');
|
||||
|
||||
const permissions = Object.values(Permissions).flatMap((namespace) =>
|
||||
Object.values(namespace),
|
||||
const permissions = Object.values(PERMISSIONS).flatMap((namespace) =>
|
||||
Object.values(namespace.permissions),
|
||||
);
|
||||
|
||||
return this.injectPermissions({
|
||||
@@ -67,4 +73,11 @@ export class PermissionsClientService
|
||||
this.permissionsService.InjectPermissions({ permissions }),
|
||||
);
|
||||
}
|
||||
getPublicPermissions() {
|
||||
return this.getPermissions(PermissionUsages.PUBLIC);
|
||||
}
|
||||
getPermissions(permissionUsage?: PermissionUsages): PermissionGroup[] {
|
||||
const groups: PermissionGroup[] = [];
|
||||
return groups;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,7 +11,7 @@ import {
|
||||
import { ApiTags } from '@nestjs/swagger';
|
||||
import { PipelinesClientService } from 'src/clients/pipelines/client.service';
|
||||
import { AuthenticateCondition } from 'src/authentication/authentication.decorator';
|
||||
import { Permissions } from '../../authentication/permissions.enum';
|
||||
import { PERMISSIONS } from '../../authentication/permissions.enum';
|
||||
import { PipelinesService } from './pipelines.service';
|
||||
import { DadosferaLogger } from 'dadosfera-logs';
|
||||
|
||||
@@ -33,7 +33,7 @@ import { DadosferaLogger } from 'dadosfera-logs';
|
||||
action = req.method;
|
||||
}
|
||||
|
||||
return user.permissions.includes(Permissions.PIPELINE[action].seqid);
|
||||
return user.permissions.includes(PERMISSIONS.PIPELINE[action].seqid);
|
||||
})
|
||||
export class PipelinesController {
|
||||
logger: any;
|
||||
|
||||
@@ -1,19 +1,5 @@
|
||||
import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';
|
||||
|
||||
export class Permission {
|
||||
@ApiProperty()
|
||||
id: string;
|
||||
@ApiProperty()
|
||||
seqid: number;
|
||||
@ApiProperty()
|
||||
name: string;
|
||||
@ApiProperty()
|
||||
claim: string;
|
||||
@ApiProperty()
|
||||
createdAt: string;
|
||||
@ApiProperty()
|
||||
updatedAt: string;
|
||||
}
|
||||
import { Permission } from 'src/modules/permissions/dto/entities';
|
||||
export class Role {
|
||||
@ApiPropertyOptional({ type: [Permission] })
|
||||
permissions: Permission[];
|
||||
|
||||
@@ -13,7 +13,7 @@ import { ApiTags } from '@nestjs/swagger';
|
||||
import { TransformationsClientService } from 'src/clients/transformations/client.service';
|
||||
import { IIdRequest } from 'src/clients/transformations/interfaces';
|
||||
import { AuthenticateCondition } from 'src/authentication/authentication.decorator';
|
||||
import { Permissions } from '../../authentication/permissions.enum';
|
||||
import { PERMISSIONS } from '../../authentication/permissions.enum';
|
||||
import { TransformationsService } from './transformations.service';
|
||||
import { DadosferaLogger } from 'dadosfera-logs';
|
||||
|
||||
@@ -35,7 +35,7 @@ import { DadosferaLogger } from 'dadosfera-logs';
|
||||
action = req.method;
|
||||
}
|
||||
|
||||
return user.permissions.includes(Permissions.TRANSFORMATIONS[action].seqid);
|
||||
return user.permissions.includes(PERMISSIONS.TRANSFORMATIONS[action].seqid);
|
||||
})
|
||||
export class TransformationsController {
|
||||
logger: any;
|
||||
|
||||
Reference in New Issue
Block a user