diff --git a/TaxBaik.Web/Components/Admin/Pages/Settings/SiteSettings.razor b/TaxBaik.Web/Components/Admin/Pages/Settings/SiteSettings.razor
index 7952f9f..8054d34 100644
--- a/TaxBaik.Web/Components/Admin/Pages/Settings/SiteSettings.razor
+++ b/TaxBaik.Web/Components/Admin/Pages/Settings/SiteSettings.razor
@@ -1,5 +1,8 @@
@page "/admin/settings"
+@using System.ComponentModel.DataAnnotations
+@using TaxBaik.Web.Services
@using TaxBaik.Domain.Interfaces
+@inject IApiClient ApiClient
@inject ISnackbar Snackbar
설정
@@ -25,11 +28,36 @@
+
+ 계정 관리
+
+
+
+
+
+
+
+
+
+ @(isChangingPassword ? "변경 중..." : "비밀번호 변경")
+
+
+
+
@code {
private string phone = "010-4122-8268";
private string email = "taxbaik5668@gmail.com";
private string kakaoUrl = "http://pf.kakao.com/_xoxchTX";
private string instagramUrl = "https://www.instagram.com/taxtory5668/";
+ private string currentPassword = "";
+ private string newPassword = "";
+ private string confirmNewPassword = "";
+ private bool isChangingPassword;
private async Task SaveSettings()
{
@@ -37,4 +65,57 @@
Snackbar.Add("설정 저장 기능은 아직 구현되지 않았습니다.", Severity.Info);
await Task.CompletedTask;
}
+
+ private async Task ChangePassword()
+ {
+ if (isChangingPassword)
+ return;
+
+ if (string.IsNullOrWhiteSpace(currentPassword) || string.IsNullOrWhiteSpace(newPassword))
+ {
+ Snackbar.Add("현재 비밀번호와 새 비밀번호를 입력하세요.", Severity.Warning);
+ return;
+ }
+
+ if (newPassword != confirmNewPassword)
+ {
+ Snackbar.Add("새 비밀번호 확인이 일치하지 않습니다.", Severity.Warning);
+ return;
+ }
+
+ isChangingPassword = true;
+
+ try
+ {
+ var response = await ApiClient.PostAsync("auth/change-password", new
+ {
+ CurrentPassword = currentPassword,
+ NewPassword = newPassword
+ });
+
+ if (response?.Message == null)
+ {
+ Snackbar.Add("비밀번호 변경에 실패했습니다.", Severity.Error);
+ return;
+ }
+
+ Snackbar.Add(response.Message, Severity.Success);
+ currentPassword = "";
+ newPassword = "";
+ confirmNewPassword = "";
+ }
+ catch
+ {
+ Snackbar.Add("비밀번호 변경 중 오류가 발생했습니다.", Severity.Error);
+ }
+ finally
+ {
+ isChangingPassword = false;
+ }
+ }
+
+ private class ChangePasswordResponse
+ {
+ public string Message { get; set; } = "";
+ }
}