fix: denetim bulguları — çip adı sahte 'tercihlerin değişmiş', çekmece kartı, senkron riski
- tercihFarki eski 'İş garantisi' parametresini yeni ada eşleyerek kıyaslar; ad değişikliği 3 kredilik güncelleme çağrısı üretmesin - çekmece kartı yalnız profil yokken sıra ister, butonu sıra kapısını açar (profilsiz ziyaretçi /listem giriş duvarına gönderilmiyordu → çıkmaz) - sunucuylaBirlestir risksiz gelen kayıtların riskini doldurur - /paket'teki fiyat kıyasına kaynak satırı Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
@@ -111,7 +111,7 @@ export function sihirbazDogrula(girdi: unknown): SihirbazSecimleri | null {
|
||||
p.oncelikler
|
||||
// Eski kayıtlı profiller: çip adı "İş garantisi" idi (vaat diliyle
|
||||
// çeliştiği için değişti); seçim kaybolmasın diye yeni ada eşlenir.
|
||||
.map((x) => (x === "İş garantisi" ? "İş bulma kolaylığı" : x))
|
||||
.map(oncelikNormalize)
|
||||
.filter(
|
||||
(x): x is string =>
|
||||
typeof x === "string" &&
|
||||
@@ -124,6 +124,15 @@ export function sihirbazDogrula(girdi: unknown): SihirbazSecimleri | null {
|
||||
return { kategoriler, iller, universiteTipi, oncelikler };
|
||||
}
|
||||
|
||||
/**
|
||||
* Eski çip adı "İş garantisi" → "İş bulma kolaylığı". Kayıtlı profil ve eski
|
||||
* rapor parametreleri eski adı taşıyabilir; karşılaştırma/gösterim öncesi
|
||||
* yeni ada eşlenir ki ad değişikliği "tercihlerin değişmiş" diye okunmasın.
|
||||
*/
|
||||
export function oncelikNormalize<T>(x: T): T | string {
|
||||
return x === "İş garantisi" ? "İş bulma kolaylığı" : x;
|
||||
}
|
||||
|
||||
/** localStorage'taki ortak sıra + sihirbaz profilini güvenle doğrular. */
|
||||
export function tercihProfiliDogrula(girdi: unknown): TercihProfili | null {
|
||||
if (typeof girdi !== "object" || girdi === null) return null;
|
||||
|
||||
Reference in New Issue
Block a user