Membership ve Davet Tekilliği
Kural
Aynı user + organization çifti için aynı anda en fazla BİR aktif membership bulunabilir. Çelişkili/paralel davet durumları kontrollü sonuç üretir; sistem şu semantik sonuç-sınıflarından birine deterministik olarak karar verir: INVITE_CREATED · ALREADY_MEMBER · ACTIVE_INVITE_EXISTS · INVITE_CAN_BE_RESENT · CONFLICT_REQUIRES_REVIEW · DENIED (normatif semantik sınıflar; fiziksel enum/API adları değildir). Belirsiz identity sessiz membership üretmez; CONFLICT_REQUIRES_REVIEW yoluna düşer.
Gerekçe
Duplicate-aktif-membership; rol, erişim ve audit gerçeğini bölerek "hangi üyelik geçerli" sorusunu yanıtsız bırakır. Belirsiz kimliğin sessiz üyeliği ise yanlış-hesaba-yetki sınıfı bir güvenlik hatasıdır.
Test edilebilir hükümler
- Aktif üyeliği olan kullanıcı için ikinci aktif-membership oluşturma denemesi hiçbir yoldan (davet-kabul dahil) başarılı olamaz.
- Aktif davet varken yeni davet isteği kontrollü sonuç-sınıfına düşer; kontrolsüz ikinci kayıt üretmez.
- Identity-belirsizliği içeren kabul akışı otomatik membership üretmez; review-yoluna düşer.
- Aynı girdiye aynı durumda hep aynı sonuç-sınıfı döner (determinizm).
Kapsam
Davet-oluşturma + kabul + membership-yaratma yollarının tamamı. Kapsanan UC'ler: UC-OAM-006 (+ UC-OAM-005 arayüzü). Yarış-koşulu altında tekillik: CAN-REQ-RULE-023.