package kr.itn.itnhub.config; import org.springframework.stereotype.Component; import java.security.Principal; /** * 기록에 남길 "작성자 이름"을 한 곳에서 정한다(요구사항 [22]). * *
예전에는 각 컨트롤러가 {@code principal.getName()}을 그대로 써서 업무메모·연락이력· * 보고서에 로그인 아이디(admin)가 찍혔다. 지금은 설정에 넣어둔 표시 이름을 쓴다.
* *나중에 담당자별 계정이 생기면 여기만 고쳐서 각자의 이름이 찍히게 하면 된다.
*/ @Component public class CurrentUser { private final AdminProperties admin; public CurrentUser(AdminProperties admin) { this.admin = admin; } /** 기록에 남길 이름. 로그인한 사람이 관리자면 설정된 표시 이름을 쓴다. */ public String displayName(Principal principal) { if (principal == null) { return admin.displayNameOrUsername(); } if (principal.getName().equals(admin.username())) { return admin.displayNameOrUsername(); } // 관리자 외 계정이 생기면 그 계정의 아이디를 그대로 쓴다. return principal.getName(); } }