1
1
/*
2
- * Copyright 2018-2024 little3201.
2
+ * Copyright 2018-2025 little3201.
3
3
*
4
4
* Licensed under the Apache License, Version 2.0 (the "License");
5
5
* you may not use this file except in compliance with the License.
18
18
package io .leafage .basic .hypervisor .controller ;
19
19
20
20
import io .leafage .basic .hypervisor .domain .GroupMembers ;
21
+ import io .leafage .basic .hypervisor .domain .GroupPrivileges ;
21
22
import io .leafage .basic .hypervisor .dto .GroupDTO ;
22
23
import io .leafage .basic .hypervisor .service .GroupMembersService ;
24
+ import io .leafage .basic .hypervisor .service .GroupPrivilegesService ;
23
25
import io .leafage .basic .hypervisor .service .GroupService ;
24
26
import io .leafage .basic .hypervisor .vo .GroupVO ;
25
27
import jakarta .validation .Valid ;
33
35
import reactor .core .publisher .Mono ;
34
36
35
37
import java .util .List ;
38
+ import java .util .Set ;
36
39
37
40
/**
38
41
* group controller
@@ -48,16 +51,19 @@ public class GroupController {
48
51
49
52
private final GroupMembersService groupMembersService ;
50
53
private final GroupService groupService ;
54
+ private final GroupPrivilegesService groupPrivilegesService ;
51
55
52
56
/**
53
57
* <p>Constructor for GroupController.</p>
54
58
*
55
- * @param groupMembersService a {@link io.leafage.basic.hypervisor.service.GroupMembersService} object
56
- * @param groupService a {@link io.leafage.basic.hypervisor.service.GroupService} object
59
+ * @param groupMembersService a {@link GroupMembersService} object
60
+ * @param groupService a {@link GroupService} object
61
+ * @param groupPrivilegesService a {@link GroupPrivilegesService} object
57
62
*/
58
- public GroupController (GroupMembersService groupMembersService , GroupService groupService ) {
63
+ public GroupController (GroupMembersService groupMembersService , GroupService groupService , GroupPrivilegesService groupPrivilegesService ) {
59
64
this .groupMembersService = groupMembersService ;
60
65
this .groupService = groupService ;
66
+ this .groupPrivilegesService = groupPrivilegesService ;
61
67
}
62
68
63
69
/**
@@ -189,4 +195,21 @@ public ResponseEntity<Mono<List<GroupMembers>>> members(@PathVariable Long id) {
189
195
return ResponseEntity .ok (listMono );
190
196
}
191
197
198
+ /**
199
+ * 关联权限
200
+ *
201
+ * @param id 组id
202
+ * @return 查询到的数据集,异常时返回204状态码
203
+ */
204
+ @ PatchMapping ("/{id}/privileges/{privilegeId}" )
205
+ public ResponseEntity <Mono <GroupPrivileges >> relation (@ PathVariable Long id , @ PathVariable Long privilegeId , @ RequestBody Set <String > actions ) {
206
+ Mono <GroupPrivileges > mono ;
207
+ try {
208
+ mono = groupPrivilegesService .relation (id , privilegeId , actions );
209
+ } catch (Exception e ) {
210
+ logger .error ("Relation group privileges occurred an error: " , e );
211
+ return ResponseEntity .noContent ().build ();
212
+ }
213
+ return ResponseEntity .ok (mono );
214
+ }
192
215
}
0 commit comments