feat(hmm): align backoffice identity administration (#702)

This commit is contained in:
devmrko
2026-07-22 13:49:59 +09:00
parent 64965c294b
commit 572dcd9a67
11 changed files with 226 additions and 158 deletions

View File

@@ -1,6 +1,7 @@
package com.cloudhandson.vpdbackoffice.web;
import com.cloudhandson.vpdbackoffice.service.BearerTokenService;
import com.cloudhandson.vpdbackoffice.service.UserService;
import java.time.Clock;
import java.time.LocalDateTime;
import java.time.OffsetDateTime;
@@ -18,10 +19,12 @@ import org.springframework.web.servlet.mvc.support.RedirectAttributes;
public class TokenController {
private final BearerTokenService tokenService;
private final UserService userService;
private final Clock clock;
public TokenController(BearerTokenService tokenService, Clock clock) {
public TokenController(BearerTokenService tokenService, UserService userService, Clock clock) {
this.tokenService = tokenService;
this.userService = userService;
this.clock = clock;
}
@@ -32,23 +35,20 @@ public class TokenController {
) {
model.addAttribute("tokens", tokenService.findAll(includeInactive));
model.addAttribute("includeInactive", includeInactive);
model.addAttribute("stakeholders", tokenService.findStakeholderTokenSubjects());
model.addAttribute("users", userService.findAll().stream().filter(user -> user.active()).toList());
model.addAttribute("defaultExpiresAt", defaultExpiresAt());
return "tokens";
}
@PostMapping("/tokens")
public String issue(
@RequestParam String stakeholderUserId,
@RequestParam long userId,
@RequestParam String expiresAt,
@RequestParam(required = false) String description,
RedirectAttributes redirectAttributes
) {
var issued = tokenService.issueStakeholderToken(
stakeholderUserId,
parseBrowserDateTime(expiresAt),
description
);
var issued = tokenService.issueToken(new com.cloudhandson.vpdbackoffice.domain.token.TokenIssueCommand(
userId, parseBrowserDateTime(expiresAt), description));
redirectAttributes.addFlashAttribute("issued", issued);
return "redirect:/tokens";
}