mirror of
https://github.com/dadosfera/maestro.git
synced 2026-11-15 19:59:08 +00:00
FEAT: new roles routes working
This commit is contained in:
Generated
+2
-2
@@ -9017,7 +9017,7 @@
|
||||
"node_modules/protospack-v2": {
|
||||
"version": "0.0.0",
|
||||
"resolved": "file:../protospack-v2/protospack-v2-0.0.0.tgz",
|
||||
"integrity": "sha512-/Pmor5eTfl0kRUC0uMsqsMojLnl3j5vMHhO9CYYQ9/5bYWSvq40+NovS9msyuqNsTW2oAYpGvMNDm6zeaV4Ciw==",
|
||||
"integrity": "sha512-kj/mJbme5CULhsRW4fyXdRUtJKzG5Q5zVYg4BSYMRovHi/jcZUgOIXWwOn0rnqLlMlzdl2msx0S9mA7b62IQzQ==",
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"@grpc/grpc-js": "^1.6.7",
|
||||
@@ -17247,7 +17247,7 @@
|
||||
},
|
||||
"protospack-v2": {
|
||||
"version": "file:../protospack-v2/protospack-v2-0.0.0.tgz",
|
||||
"integrity": "sha512-/Pmor5eTfl0kRUC0uMsqsMojLnl3j5vMHhO9CYYQ9/5bYWSvq40+NovS9msyuqNsTW2oAYpGvMNDm6zeaV4Ciw==",
|
||||
"integrity": "sha512-kj/mJbme5CULhsRW4fyXdRUtJKzG5Q5zVYg4BSYMRovHi/jcZUgOIXWwOn0rnqLlMlzdl2msx0S9mA7b62IQzQ==",
|
||||
"requires": {
|
||||
"@grpc/grpc-js": "^1.6.7",
|
||||
"rxjs": "^7.5.5",
|
||||
|
||||
@@ -42,6 +42,7 @@ async function bootstrap() {
|
||||
.setDescription('Documentation for Maestro gateway')
|
||||
.setVersion('1.0')
|
||||
.addBearerAuth()
|
||||
.addServer('http://127.0.0.1:3333')
|
||||
.build();
|
||||
|
||||
const document = SwaggerModule.createDocument(app, config);
|
||||
|
||||
@@ -55,24 +55,24 @@ export class CreateRoleRes {
|
||||
role: CustomerRole;
|
||||
}
|
||||
|
||||
export class AssignPermissionsToRoleReq {
|
||||
export class GrantPermissionsToRoleReq {
|
||||
@ApiProperty()
|
||||
roleId: string;
|
||||
@ApiProperty()
|
||||
permissionIds: string[];
|
||||
permissionIds: number[];
|
||||
}
|
||||
export class AssignPermissionsToRoleRes {
|
||||
export class GrantPermissionsToRoleRes {
|
||||
@ApiProperty()
|
||||
role: Role;
|
||||
}
|
||||
|
||||
export class UnassignPermissionsToRoleReq {
|
||||
export class RevokePermissionsFromRoleReq {
|
||||
@ApiProperty()
|
||||
roleId: string;
|
||||
@ApiProperty()
|
||||
permissionIds: string[];
|
||||
permissionIds: number[];
|
||||
}
|
||||
export class UnassignPermissionsToRoleRes {
|
||||
export class RevokePermissionsFromRoleRes {
|
||||
@ApiProperty()
|
||||
role: Role;
|
||||
}
|
||||
@@ -83,9 +83,9 @@ export class UpdateRoleReq {
|
||||
@ApiPropertyOptional()
|
||||
description: string;
|
||||
@ApiPropertyOptional()
|
||||
userIds: string;
|
||||
userIds: string[];
|
||||
@ApiPropertyOptional()
|
||||
permissionIds: string;
|
||||
permissionIds: number[];
|
||||
}
|
||||
|
||||
export class UpdateRoleRes {
|
||||
|
||||
@@ -16,14 +16,14 @@ import { RequestUser, User } from 'src/authentication/user.decorator';
|
||||
import { DadosferaLogger } from 'dadosfera-logs';
|
||||
import { RolesService } from './roles.service';
|
||||
import {
|
||||
AssignPermissionsToRoleReq as grantPermissionsToRoleReq,
|
||||
AssignPermissionsToRoleRes as GrantPermissionsToRoleRes,
|
||||
GrantPermissionsToRoleReq,
|
||||
GrantPermissionsToRoleRes,
|
||||
CreateRoleReq,
|
||||
CreateRoleRes,
|
||||
GetRolesByCustomerReq,
|
||||
GetRolesByCustomerRes,
|
||||
UnassignPermissionsToRoleReq as RevokePermissionsToRoleReq,
|
||||
UnassignPermissionsToRoleRes as RevokePermissionsToRoleRes,
|
||||
RevokePermissionsFromRoleReq,
|
||||
RevokePermissionsFromRoleRes,
|
||||
UpdateRoleReq,
|
||||
UpdateRoleRes,
|
||||
} from './dto/entities';
|
||||
@@ -73,20 +73,20 @@ export class RolesController {
|
||||
@ApiOkResponse({ type: GrantPermissionsToRoleRes })
|
||||
async grantPermissionsToRole(
|
||||
@User() user: RequestUser,
|
||||
@Body() body: grantPermissionsToRoleReq,
|
||||
@Body() body: GrantPermissionsToRoleReq,
|
||||
) {
|
||||
this.logger.info('grantPermissionsToRole', { user });
|
||||
return await this.rolesService.grantPermissionsToRole(body);
|
||||
}
|
||||
|
||||
@Delete('permissions')
|
||||
@ApiOkResponse({ type: RevokePermissionsToRoleRes })
|
||||
async revokePermissionsToRole(
|
||||
@ApiOkResponse({ type: RevokePermissionsFromRoleRes })
|
||||
async revokePermissionsFromRole(
|
||||
@User() user: RequestUser,
|
||||
@Body() body: RevokePermissionsToRoleReq,
|
||||
@Body() body: RevokePermissionsFromRoleReq,
|
||||
) {
|
||||
this.logger.info('revokePermissionsToRole', { user });
|
||||
return await this.rolesService.revokePermissionToRole(body);
|
||||
return await this.rolesService.revokePermissionFromRole(body);
|
||||
}
|
||||
|
||||
@Patch(':id')
|
||||
@@ -97,5 +97,6 @@ export class RolesController {
|
||||
@Body() body: UpdateRoleReq,
|
||||
) {
|
||||
this.logger.info('updateRole', { user });
|
||||
return this.rolesService.updateRole(id, body);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,16 +1,18 @@
|
||||
import { BadRequestException, Inject, Injectable } from '@nestjs/common';
|
||||
import { ProtoServices } from 'protospack-v2/dist/lib/Duc';
|
||||
import { RolesProtoService } from 'protospack-v2/dist/lib/Duc/interfaces/write-service';
|
||||
import { CreateRoleReq, GetRolesByCustomerReq, Role } from './dto/entities';
|
||||
import {
|
||||
CreateRoleReq,
|
||||
GetRolesByCustomerReq,
|
||||
GrantPermissionsToRoleReq,
|
||||
RevokePermissionsFromRoleReq,
|
||||
Role,
|
||||
UpdateRoleReq,
|
||||
} from './dto/entities';
|
||||
import { DadosferaLogger } from 'dadosfera-logs';
|
||||
import { ClientGrpc } from '@nestjs/microservices';
|
||||
import { lastValueFrom } from 'rxjs';
|
||||
import { PermissionsService } from '../permissions/permissions.service';
|
||||
import {
|
||||
GrantPermissionsToRoleRequest,
|
||||
RevokePermissionsFromRoleRequest,
|
||||
RoleUpdateRequest,
|
||||
} from 'protospack-v2/dist/lib/Duc/interfaces/messages';
|
||||
|
||||
@Injectable()
|
||||
export class RolesService {
|
||||
@@ -78,29 +80,48 @@ export class RolesService {
|
||||
async grantPermissionsToRole({
|
||||
roleId,
|
||||
permissionIds,
|
||||
}: GrantPermissionsToRoleRequest) {
|
||||
}: GrantPermissionsToRoleReq) {
|
||||
const role = await lastValueFrom(
|
||||
this.rolesClientService.GrantPermissionsToRole({
|
||||
permissionIds,
|
||||
permissionIds: [],
|
||||
roleId,
|
||||
permissionReqIds: permissionIds,
|
||||
}),
|
||||
);
|
||||
|
||||
const [roleTreated] = this.getRolesPermissionsName([role.role]);
|
||||
return { role: roleTreated };
|
||||
}
|
||||
|
||||
async revokePermissionToRole({
|
||||
async revokePermissionFromRole({
|
||||
roleId,
|
||||
permissionIds,
|
||||
}: RevokePermissionsFromRoleRequest) {
|
||||
}: RevokePermissionsFromRoleReq) {
|
||||
const role = await lastValueFrom(
|
||||
this.rolesClientService.RevokePermissionsFromRole({
|
||||
permissionIds,
|
||||
permissionIds: [],
|
||||
roleId,
|
||||
permissionReqIds: permissionIds,
|
||||
}),
|
||||
);
|
||||
const [roleTreated] = this.getRolesPermissionsName([role.role]);
|
||||
return { role: roleTreated };
|
||||
}
|
||||
|
||||
async updateRole(req: RoleUpdateRequest) {
|
||||
const role = await lastValueFrom(this.rolesClientService.RoleUpdate(req));
|
||||
async updateRole(id: string, req: UpdateRoleReq) {
|
||||
const { description, name, permissionIds, userIds } = req;
|
||||
const role = await lastValueFrom(
|
||||
this.rolesClientService.RoleUpdate({
|
||||
id,
|
||||
description,
|
||||
name,
|
||||
permissionIds: [],
|
||||
permissionReqIds: permissionIds,
|
||||
userIds,
|
||||
}),
|
||||
);
|
||||
const [roleTreated] = this.getRolesPermissionsName([role.role]);
|
||||
return { role: roleTreated };
|
||||
}
|
||||
getRolesPermissionsName(roles: Role[]) {
|
||||
for (const role of roles) {
|
||||
|
||||
Reference in New Issue
Block a user