feat(auth): Better Auth, kullanıcı adı ile giriş, DAL ve proxy

- MongoDB/Mongoose bağlantıları, kayıt kapalı, admin + username plugin, rate limit
- DAL: getCurrentUser, requireSession, requireRole, getActionUser
- Kullanıcı adı normalizasyonu: İ/I/ı → i (tr-TR 'ADMIN' → 'admın' hatası)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-11-05 02:02:00 +03:00
parent 381214c2cb
commit 5191a5cce1
14 changed files with 319 additions and 4 deletions
+20
View File
@@ -0,0 +1,20 @@
import { describe, expect, it } from "vitest";
import { isPlaceholderEmail, placeholderEmail, storedEmail, visibleEmail } from "./account-email";
describe("yer tutucu e-posta", () => {
it("kullanıcı adından .invalid adres üretir ve tanır", () => {
const e = placeholderEmail("emre");
expect(e).toBe("emre@kullanici.butcem.invalid");
expect(isPlaceholderEmail(e)).toBe(true);
expect(isPlaceholderEmail("EMRE@KULLANICI.BUTCEM.INVALID")).toBe(true);
expect(isPlaceholderEmail("emre@ornek.com")).toBe(false);
expect(isPlaceholderEmail(undefined)).toBe(false);
});
it("kaydedilen ve gösterilen e-posta", () => {
expect(storedEmail("emre", undefined)).toBe("emre@kullanici.butcem.invalid");
expect(storedEmail("ayse", "ayse@ornek.com")).toBe("ayse@ornek.com");
expect(visibleEmail("emre@kullanici.butcem.invalid")).toBeUndefined();
expect(visibleEmail("ayse@ornek.com")).toBe("ayse@ornek.com");
});
});