package jnpf.dmsController.permission;
|
|
import jakarta.validation.Valid;
|
import jnpf.base.ActionResult;
|
import jnpf.dmsEntity.permission.form.PermissionGrantBatchForm;
|
import jnpf.dmsEntity.permission.form.PermissionRevokeForm;
|
import jnpf.dmsEntity.permission.vo.DmsCursorPageVO;
|
import jnpf.dmsEntity.permission.vo.DmsPermissionGrantVO;
|
import jnpf.dmsEntity.permission.vo.DmsPrincipalOptionVO;
|
import jnpf.dmsEntity.permission.vo.DmsPermissionUsageVO;
|
import jnpf.dmsService.DmsPermissionAdminQueryService;
|
import jnpf.dmsService.DmsPermissionGrantService;
|
import lombok.RequiredArgsConstructor;
|
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.PathVariable;
|
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.RequestBody;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestParam;
|
import org.springframework.web.bind.annotation.RestController;
|
|
import java.util.List;
|
import java.util.UUID;
|
|
@RestController
|
@RequestMapping
|
@RequiredArgsConstructor
|
public class PermissionGrantController {
|
private final DmsPermissionGrantService grantService;
|
private final DmsPermissionAdminQueryService queryService;
|
|
@PostMapping("/permission-grants")
|
public ActionResult<List<DmsPermissionGrantVO>> grant(@RequestBody @Valid PermissionGrantBatchForm form) {
|
return ActionResult.success(grantService.grant(form));
|
}
|
|
@GetMapping("/permission-grants")
|
public ActionResult<DmsCursorPageVO<DmsPermissionGrantVO>> grants(
|
@RequestParam(value = "resourceId", required = false) UUID resourceId,
|
@RequestParam(value = "principalType", required = false) String principalType,
|
@RequestParam(value = "principalId", required = false) String principalId,
|
@RequestParam(value = "cursor", required = false) String cursor,
|
@RequestParam(value = "pageSize", required = false) Integer pageSize) {
|
return ActionResult.success(queryService.grants(resourceId, principalType, principalId, cursor, pageSize));
|
}
|
|
@GetMapping("/permission-grants/{id}")
|
public ActionResult<DmsPermissionGrantVO> grant(@PathVariable("id") UUID id) {
|
return ActionResult.success(queryService.grant(id));
|
}
|
|
@PostMapping("/permission-grants/revoke")
|
public ActionResult<List<DmsPermissionGrantVO>> revoke(@RequestBody @Valid PermissionRevokeForm form) {
|
return ActionResult.success(grantService.revoke(form));
|
}
|
|
@GetMapping("/permission-principals/{type}/{id}/grants")
|
public ActionResult<DmsCursorPageVO<DmsPermissionGrantVO>> principalGrants(
|
@PathVariable("type") String type,
|
@PathVariable("id") String id,
|
@RequestParam(value = "cursor", required = false) String cursor,
|
@RequestParam(value = "pageSize", required = false) Integer pageSize) {
|
return ActionResult.success(queryService.grants(null, type, id, cursor, pageSize));
|
}
|
|
@GetMapping("/permission-grants/{id}/usages")
|
public ActionResult<List<DmsPermissionUsageVO>> usages(
|
@PathVariable("id") UUID id,
|
@RequestParam(value = "pageSize", required = false) Integer pageSize) {
|
return ActionResult.success(queryService.usages(id, pageSize));
|
}
|
|
@GetMapping("/permission-principals/groups")
|
public ActionResult<List<DmsPrincipalOptionVO>> permissionGroups(
|
@RequestParam(value = "keyword", required = false) String keyword,
|
@RequestParam(value = "pageSize", required = false) Integer pageSize) {
|
return ActionResult.success(queryService.permissionGroups(keyword, pageSize));
|
}
|
}
|