Merge remote-tracking branch 'origin/master'

This commit is contained in:
2026-02-16 16:45:04 +03:00
parent 54182e97c5
commit daedff2880
6 changed files with 310 additions and 113 deletions

View File

@@ -57,7 +57,7 @@
<script setup>
import { ref } from 'vue'
import { useRouter } from 'vue-router'
import api from 'src/services/api'
import api, { extractApiErrorDetail } from 'src/services/api'
import { useAuthStore } from 'stores/authStore.js'
const router = useRouter()
@@ -69,6 +69,33 @@ const newPassword2 = ref('')
const loading = ref(false)
const error = ref('')
function resolveFirstPasswordError(status, detail) {
const text = String(detail || '').trim()
const lower = text.toLowerCase()
if (status === 401) {
if (lower.includes('mevcut sifre') || lower.includes('current password')) {
return 'Mevcut şifreyi yanlış girdiniz.'
}
if (lower.includes('token') || lower.includes('authorization')) {
return 'Oturum doğrulanamadı. Lütfen tekrar giriş yapın.'
}
return text || 'Kimlik doğrulama hatası (401). Lütfen tekrar giriş yapın.'
}
if (status === 403) {
if (lower.includes('permission')) {
return 'Şifre değiştirme yetkiniz yok (403). Sistem yöneticinize başvurun.'
}
return text || 'Bu işlem için yetkiniz yok (403).'
}
return text || 'Şifre güncellenemedi'
}
async function submit () {
error.value = ''
@@ -84,25 +111,25 @@ async function submit () {
loading.value = true
try {
// 🔐 TOKEN interceptor ile otomatik
await api.post('/password/change', {
current_password: currentPassword.value,
new_password: newPassword.value
})
// Şifre değişimi sonrası tekrar giriş zorunlu
auth.clearSession()
router.replace('/login')
} catch (e) {
error.value =
e?.data?.message ||
e?.message ||
'Şifre güncellenemedi'
const status = e?.response?.status
const detail = await extractApiErrorDetail(e)
console.error('FIRST_PASSWORD_CHANGE failed', {
status,
detail
})
error.value = resolveFirstPasswordError(status, detail)
} finally {
loading.value = false
}
}
</script>