Skip to content

Commit 68b2797

Browse files
committed
add misc get string permission for casbin
1 parent cce47f6 commit 68b2797

13 files changed

+110
-24
lines changed

.rc

Lines changed: 0 additions & 3 deletions
This file was deleted.

migrations/1697207588388-CreatePermissionsTable.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ export class CreatePermissionsTable1697207588388 implements MigrationInterface {
99
{ name: "id", type: "int8", isPrimary: true, isGenerated: true, generationStrategy: 'increment' },
1010
{ name: "name", type: "varchar", isNullable: false },
1111
{ name: "path", type: "varchar", isNullable: true },
12-
{ name: "action", type: "varchar", isNullable: true },
12+
{ name: "actions", type: "json", isNullable: true },
1313
{ name: "created_at", type: "timestamp", isNullable: true },
1414
{ name: "updated_at", type: "timestamp", isNullable: true },
1515
],

src/admin/admin.module.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,14 @@ import { UserModule } from "src/apps/user/user.module";
44
import { UsersModule } from "./users/users.module";
55
import { RolesModule } from './roles/roles.module';
66
import { PermissionsModule } from './permissions/permissions.module';
7+
import { MiscModule } from './misc/misc.module';
78

89
@Module({
910
imports: [
1011
UsersModule,
1112
RolesModule,
1213
PermissionsModule,
14+
MiscModule,
1315
]
1416
})
1517
export class AdminModule {}

src/admin/misc/misc.controller.ts

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
import { Controller, Get, Header } from '@nestjs/common';
2+
3+
@Controller('misc')
4+
export class MiscController {
5+
6+
@Get('/permissions')
7+
@Header('content-type', 'text/plain')
8+
getPermission() {
9+
return `
10+
p, admin, posts, (list)|(create)
11+
p, admin, posts/*, (edit)|(show)|(delete)
12+
p, admin, posts/*, field
13+
14+
p, admin, users, (list)|(create)
15+
p, admin, users/*, (edit)|(show)|(delete)
16+
17+
p, admin, roles, (list)|(create)
18+
p, admin, roles/*, (edit)|(show)|(delete)
19+
20+
p, admin, access_control
21+
22+
p, admin, permissions, (list)|(create)
23+
p, admin, permissions/*, (edit)|(show)|(delete)
24+
25+
p, editor, posts, (list)|(create)
26+
p, editor, posts/*, (edit)|(show)
27+
p, editor, posts/hit, field, deny
28+
29+
p, editor, categories, list
30+
`;
31+
}
32+
}

src/admin/misc/misc.module.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
import { Module } from '@nestjs/common';
2+
import { MiscController } from './misc.controller';
3+
import { MiscService } from './misc.service';
4+
5+
@Module({
6+
controllers: [MiscController],
7+
providers: [MiscService]
8+
})
9+
export class MiscModule {}

src/admin/misc/misc.service.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
import { Injectable } from '@nestjs/common';
2+
3+
@Injectable()
4+
export class MiscService {}

src/admin/permissions/dto/create-permission.dto.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,5 +9,5 @@ export class CreatePermissionDto {
99
path: string;
1010

1111
@ApiProperty()
12-
action: string;
12+
actions: string[];
1313
}

src/admin/permissions/permissions.controller.ts

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,13 @@ export class PermissionsController extends BaseCrudController<CreatePermissionDt
1414
super(permissionsService);
1515
}
1616

17-
@Post()
18-
create(createDTO: CreatePermissionDto) {
19-
return this.create(createDTO);
20-
}
17+
// @Post()
18+
// create(createDTO: CreatePermissionDto) {
19+
// return this.create(createDTO);
20+
// }
2121

22-
@Patch(':id')
23-
update(@Param('id') id: string, @Body() updateDTO: UpdatePermissionDto) {
24-
return this.service.update(+id, updateDTO);
25-
}
22+
// @Patch(':id')
23+
// update(@Param('id') id: string, @Body() updateDTO: UpdatePermissionDto) {
24+
// return this.service.update(+id, updateDTO);
25+
// }
2626
}

src/admin/roles/roles.controller.ts

Lines changed: 22 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,29 @@ export class RolesController extends BaseCrudController<CreateRoleDto, UpdateRol
1313
super(service);
1414
}
1515

16-
@Post()
17-
create(createDTO: CreateRoleDto) {
18-
return this.create(createDTO);
16+
// @Post()
17+
// create(createDTO: CreateRoleDto) {
18+
// return this.create(createDTO);
19+
// }
20+
21+
// @Patch(':id')
22+
// update(@Param('id') id: string, @Body() updateDTO: UpdateRoleDto) {
23+
// return this.service.update(+id, updateDTO);
24+
// }
25+
26+
@Patch(':id/assign')
27+
async assignPermisssion(@Body('ids') permissionIds: string[], @Param('id') id: string) {
28+
29+
await this.service.assignPermission(+id, permissionIds);
30+
31+
return {
32+
status: true,
33+
}
1934
}
2035

21-
@Patch(':id')
22-
update(@Param('id') id: string, @Body() updateDTO: UpdateRoleDto) {
23-
return this.service.update(+id, updateDTO);
36+
@Get(':id/permissions')
37+
async getPermisssion(@Param('id') id: string) {
38+
39+
return await this.service.getPermission(+id);
2440
}
2541
}

src/admin/roles/roles.module.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,11 @@ import { RolesService } from './roles.service';
33
import { RolesController } from './roles.controller';
44
import { TypeOrmModule } from '@nestjs/typeorm';
55
import { Role } from 'src/entities/role.entity';
6+
import { RoleToPermission } from 'src/entities/role-to-permission.entity';
67

78
@Module({
89
imports: [
9-
TypeOrmModule.forFeature([Role])
10+
TypeOrmModule.forFeature([Role, RoleToPermission])
1011
],
1112
controllers: [RolesController],
1213
providers: [RolesService],

0 commit comments

Comments
 (0)