feat: publish application permissions to DDS grants
This commit is contained in:
@@ -0,0 +1,52 @@
|
||||
package com.cloudhandson.ddsbackoffice.web;
|
||||
|
||||
import com.cloudhandson.ddsbackoffice.domain.DdsProvisioningPlan;
|
||||
import com.cloudhandson.ddsbackoffice.service.DdsGrantPublisher;
|
||||
import org.springframework.dao.DataAccessException;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.ui.Model;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
|
||||
|
||||
@Controller
|
||||
public class DdsProvisionController {
|
||||
|
||||
private final DdsGrantPublisher publisher;
|
||||
|
||||
public DdsProvisionController(DdsGrantPublisher publisher) {
|
||||
this.publisher = publisher;
|
||||
}
|
||||
|
||||
@GetMapping("/dds-provision")
|
||||
public String page(Model model) {
|
||||
loadPlan(model);
|
||||
return "dds-provision";
|
||||
}
|
||||
|
||||
@PostMapping("/dds-provision/publish")
|
||||
public String publish(RedirectAttributes redirectAttributes) {
|
||||
try {
|
||||
DdsProvisioningPlan plan = publisher.publish();
|
||||
redirectAttributes.addFlashAttribute(
|
||||
"successMessage",
|
||||
plan.publishableCount() + "개 DDS DATA GRANT를 게시했습니다. 권한 없는 대상의 기존 Grant는 회수했습니다."
|
||||
);
|
||||
if (plan.hasWarnings()) {
|
||||
redirectAttributes.addFlashAttribute("warningMessage", String.join(" / ", plan.warnings()));
|
||||
}
|
||||
} catch (DataAccessException | IllegalArgumentException exception) {
|
||||
redirectAttributes.addFlashAttribute("errorMessage", exception.getMessage());
|
||||
}
|
||||
return "redirect:/dds-provision";
|
||||
}
|
||||
|
||||
private void loadPlan(Model model) {
|
||||
try {
|
||||
model.addAttribute("plan", publisher.preview());
|
||||
} catch (DataAccessException | IllegalArgumentException exception) {
|
||||
model.addAttribute("plan", new DdsProvisioningPlan(java.util.List.of(),
|
||||
java.util.List.of(exception.getMessage()), 0));
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user