package jnpf.dmsController.permission; import jakarta.validation.Valid; import jnpf.base.ActionResult; import jnpf.dmsEntity.permission.form.PermissionBatchDecisionForm; import jnpf.dmsEntity.permission.form.PermissionDecisionForm; import jnpf.dmsEntity.permission.vo.DmsAdminCapabilitiesVO; import jnpf.dmsEntity.permission.vo.DmsPermissionDecisionVO; import jnpf.dmsPermission.DmsCurrentIdentity; import jnpf.dmsService.DmsPermissionDecisionService; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.GetMapping; 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.RestController; import java.util.List; @RestController @RequestMapping @RequiredArgsConstructor public class PermissionDecisionController { private final DmsPermissionDecisionService decisionService; private final DmsCurrentIdentity currentIdentity; @PostMapping("/permission-decisions/evaluate") public ActionResult evaluate( @RequestBody @Valid PermissionDecisionForm form) { return ActionResult.success(decisionService.evaluate(form)); } @PostMapping("/permission-decisions/batch-evaluate") public ActionResult> batchEvaluate( @RequestBody @Valid PermissionBatchDecisionForm form) { return ActionResult.success(decisionService.evaluate(form.getRequests())); } @GetMapping("/permission-admin/capabilities") public ActionResult capabilities() { return ActionResult.success(new DmsAdminCapabilitiesVO(currentIdentity.isPermissionAdministrator())); } }