feat: [users] 사용자 등록 시 비밀번호 자동 생성 및 이메일 발송

- 사용자 등록 시 비밀번호 입력 필드 제거
- 임의 비밀번호 자동 생성 후 이메일 발송
- 사용자 수정 페이지에 비밀번호 초기화 버튼 추가
- 사용자 모달에 비밀번호 초기화 버튼 추가
- 사용자 모달 프로필 이미지 없을 때 이름 첫글자 표시 (한글 지원)
- UserPasswordMail 클래스 및 이메일 템플릿 추가
This commit is contained in:
2025-12-01 10:50:16 +09:00
parent 4a454db0dc
commit 85cbe23782
10 changed files with 355 additions and 44 deletions

View File

@@ -228,6 +228,41 @@ public function modal(Request $request, int $id): JsonResponse
]);
}
/**
* 비밀번호 초기화 (임의 비밀번호 생성 + 메일 발송)
*/
public function resetPassword(Request $request, int $id): JsonResponse
{
try {
// 슈퍼관리자 보호: 일반관리자가 슈퍼관리자 비밀번호 초기화 불가
if (! $this->userService->canAccessUser($id)) {
return response()->json([
'success' => false,
'message' => '사용자를 찾을 수 없습니다.',
], 404);
}
$result = $this->userService->resetPassword($id);
if (! $result) {
return response()->json([
'success' => false,
'message' => '사용자를 찾을 수 없습니다.',
], 404);
}
return response()->json([
'success' => true,
'message' => '비밀번호가 초기화되었습니다. 새 비밀번호가 사용자 이메일로 발송되었습니다.',
]);
} catch (\Exception $e) {
return response()->json([
'success' => false,
'message' => '비밀번호 초기화에 실패했습니다: '.$e->getMessage(),
], 500);
}
}
/**
* 사용자 영구 삭제 (슈퍼관리자 전용)
*/