fix: 사용자 관리 시스템 백엔드 API 통합

- 사용자 목록 로드를 localStorage에서 AuthAPI.getUsers()로 변경
- 비밀번호 초기화를 localStorage 조작에서 AuthAPI.resetPassword()로 변경
- 사용자 삭제 기능 백엔드 API 연동 확인
- 사용자 추가/목록/삭제 모든 기능이 백엔드 DB와 동기화됨
- localStorage 하드코딩 문제 해결로 일관된 데이터 관리 구현

Fixes:
- 사용자 추가 후 목록에 표시되지 않던 문제
- 비밀번호 초기화가 실제 DB에 반영되지 않던 문제
- 백엔드 API와 localStorage 간 데이터 불일치 문제
This commit is contained in:
hyungi
2025-10-24 10:27:45 +09:00
parent b024a178d0
commit 0e57cb99e8
4 changed files with 315 additions and 9 deletions

View File

@@ -305,10 +305,14 @@
// 사용자 목록 로드
async function loadUsers() {
try {
// 백엔드 API에서 사용자 목록 로드
users = await AuthAPI.getUsers();
displayUsers();
} catch (error) {
console.error('사용자 목록 로드 실패:', error);
// API 실패 시 빈 배열로 초기화
users = [];
displayUsers();
}
}
@@ -339,18 +343,53 @@
</span>
</div>
</div>
${user.username !== 'hyungi' ? `
<div class="flex gap-2">
<button
onclick="deleteUser('${user.username}')"
class="px-3 py-1 bg-red-500 text-white rounded hover:bg-red-600 transition-colors text-sm"
onclick="resetPassword('${user.username}')"
class="px-3 py-1 bg-yellow-500 text-white rounded hover:bg-yellow-600 transition-colors text-sm"
>
<i class="fas fa-trash mr-1"></i>삭제
<i class="fas fa-key mr-1"></i>비밀번호 초기화
</button>
` : ''}
${user.username !== 'hyungi' ? `
<button
onclick="deleteUser('${user.username}')"
class="px-3 py-1 bg-red-500 text-white rounded hover:bg-red-600 transition-colors text-sm"
>
<i class="fas fa-trash mr-1"></i>삭제
</button>
` : ''}
</div>
</div>
`).join('');
}
// 비밀번호 초기화
async function resetPassword(username) {
if (!confirm(`${username} 사용자의 비밀번호를 "000000"으로 초기화하시겠습니까?`)) {
return;
}
try {
// 사용자 ID 찾기
const user = users.find(u => u.username === username);
if (!user) {
alert('사용자를 찾을 수 없습니다.');
return;
}
// 백엔드 API로 비밀번호 초기화
await AuthAPI.resetPassword(user.id, '000000');
alert(`${username} 사용자의 비밀번호가 "000000"으로 초기화되었습니다.`);
// 목록 새로고침
await loadUsers();
} catch (error) {
alert('비밀번호 초기화에 실패했습니다: ' + error.message);
}
}
// 사용자 삭제
async function deleteUser(username) {
if (!confirm(`정말 ${username} 사용자를 삭제하시겠습니까?`)) {