feat: [users] 사용자 등록 시 비밀번호 자동 생성 및 이메일 발송
- 사용자 등록 시 비밀번호 입력 필드 제거 - 임의 비밀번호 자동 생성 후 이메일 발송 - 사용자 수정 페이지에 비밀번호 초기화 버튼 추가 - 사용자 모달에 비밀번호 초기화 버튼 추가 - 사용자 모달 프로필 이미지 없을 때 이름 첫글자 표시 (한글 지원) - UserPasswordMail 클래스 및 이메일 템플릿 추가
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 사용자 영구 삭제 (슈퍼관리자 전용)
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user