Rollar we elýeterlilik boýunça interfeýsler
1) Ýörelgeler
1. Howpsuzlyk = UX-wezipe. Ulanyjy "çal zolaksyz" näme edip biljekdigine we edip bilmejekdigine aýdyň düşünmeli.
2. Iň az zerur hukuklar. Görkezişden hereketlere çenli - hemme zat rol wezipeleri bilen çäklenýär.
3. Gadaganlygyň ýerine signal. Giriş ýok bolsa, näme üçin we nädip almalydygyny düşündirýäris (haýyş, haýyş, okuw).
4. Serwerde köpeltmek. UI-gwardlar hiç haçan serwer barlaglarynyň ornuny tutmaýar.
5. Aç-açan audit. Her bir duýgur hereket okalýan yz galdyrýar.
2) Elýeterliligi dolandyrmagyň modelleri
RBAC (Role-Based): Kesgitlenen rollar: Oýunçy, Sapport, Maliýe, Töwekgelçilik/Utgaşma, Affiliat- dolandyryjy, Moderator, Admin.
ABAC (Attribute-Based): atributlara esaslanýan syýasat (ýurisdiksiýa, marka, wagt zolagy, VIP derejesi, topar, çalşyk).
ReBAC (Relationship-Based): gatnaşyklar boýunça elýeterlilik (oýunçynyň kuratory, bilet eýesi, hyzmatdaş dolandyryjysy).
SoD (Segregation of Duties): Möhüm meseleleriň bölünişi (döredildi ≠ tassyklandy).
Amal: RBAC bazis hökmünde, ABAC inçe sazlamak üçin (marka/sebit), SoD maliýe/çäkler üçin, ReBAC - nokat (gözegçilik edilýän portfeller).
3) Rollar boýunça funksiýalaryň kartasy (iGaming mysaly)
4) Hukuklar we rollar üçin UX-patternler
4. 1 Nawigasiýa we görünmek
Nawigasiýadan elýeterli bolmadyk bölümleri gizläň (sesiň azalmagy), ýöne mümkinçiliklere düşünmäge kömek edýän bolsa, maglumat "boş" kartoçkalary görkeziň.
Wagtlaýyn elýeterli adam üçin - "Gulp": sebäp, talaplar, CTA "Elýeterliligi haýyş et".
4. 2 Hereketleriň ýagdaýy
Disabled + tooltip: "Maliýe roly talap edilýär. Giriş sora".
Read-only re modeim: "aýnanyň aşagyndaky" meýdanlar, "Diňe okamak" markeri.
Eskalasiýa: "Ulanmak" ýerine "Tassyklamak üçin ibermek" düwmesi.
4. 3 Gizlemek we redaktirlemek
PII (email, telefon, salgy) - 'user @.', '+ 380 90' beýleki adamlaryň ýazgylary üçin.
PAN/IBAN - diňe bellikler/soňky 4.
"Doly görkeziň" açary - diňe audit bilen baglanyşykly rol/waka üçin.
5) UI-de rugsatnamalaryň arhitekturasy
Müşderide policy-kontekst: Rugsat kesesi (TTL gysga) + täzelenmelere ýazylmak.
Marşrutlar: elýeterli däl ýollar → 403-sahypa düşündiriş we CTA.
Komponentleriň gutulary: 'Can ({action:' approve _ withdrawal ', resource:' payout '})'.
Fiçeflaglar: synag/möwsümleýin zatlar - hukuklardan aýratyn.
tsx type Permission = string; // 'payout.approve', 'kyc.view_masked'
type Policy = { has:(p:Permission)=>boolean };
const PolicyCtx = React.createContext<Policy>({ has:()=>false });
export const Can: React.FC<{perm:Permission, children:React.ReactNode, fallback?:React.ReactNode}>
= ({perm, children, fallback=null}) => {
const { has } = React.useContext(PolicyCtx);
return has(perm)? <>{children}</>: <>{fallback}</>;
};
6) Serwer> Müşderi
Islendik hereket bellikli belgi (roly, atributlary) boýunça serwer tarapyndan tassyklanylýar.
Syýasatçylar merkezleşdirildi (PDP/OPA/Cedar/Zanzibar-şuňa meňzeşler), UI diňe çözgüt alýar.
Ähli möhüm amallar - iki faktorly tassyklama + audit.
7) Gizlemek we gyzyl maglumat zolaklary
Maglumat kategoriýalary:- PII: ady, email, telefon belgisi, salgysy, doglan senesi.
- Maliýe: PAN/IBAN/kripto gapjyklary, summalar, çäkler, bonus balanslary.
- Resminamalar: pasport/ID/selfi (KYC).
- Oýun oýunlary: jedelleriň/ýeňişleriň/patternleriň taryhy.
- Doly - ýazgynyň roly/eýesi.
- Gizlenen - sapport, maliýe (eýesi däl).
- Jemlenen - analitika (şahsyýetnamasyz).
tsx function Redact({text, perm}:{text:string, perm:Permission}){
const { has } = React.useContext(PolicyCtx);
return <span>{has(perm)? text: text.replace(/.(?=.{4})/g,'•')}</span>;
}
8) Tassyklamalaryň akymlary (Approvals) we SoD
Dört göz: inisiator ≠ tassyklaýjy.
Köp basgançakly ugurlar (mysal üçin, jemi> X → 2-nji setir).
Arzalaryň, SLA-nyň, eskalasiýanyň hereket ediş möhleti.
Magazineurnal: Kim döretdi, kim üýtgetdi, kim tassyklady, haçan we nireden.
Mysallar: yza çekilişi tassyklamak, oýunçynyň çäklerini üýtgetmek, KYC-nyň hökümi, sanksiýa baýdagyny aýyrmak.
9) iGaming aýratynlyklary
Çäklendirmeler we öz-özüni aýyrmak: diňe SoD we ulanyja hökmany habar bermek bilen üýtgetmek.
KYC/AML: resminamalara girmek - dar rol; miniatýuralary öňünden görmek, doly ölçegli - log bilen aýratyn hereket etmek.
Sanksiýa/RER-baýdaklar: töwekgelçilik-topara görünýär; sapport - diňe "barlag gerek" statusy.
Tölegler/netijeler: "geçirmek/ret etmek" - diňe Maliýe roly; çäkden ýokary mukdarda - goşa tassyklama.
Jedelleriň žurnallary: sapport okaýar, ýöne redaktirlemeýär; düzedişler - derňew bilen aýratyn funksiýa.
10) Lokalizasiýa, A11y, RTL
"Elýeterlilik ýok" diýen tekstler lokallaşdyrylýar we hereket edýän ýollary öz içine alýar (haýyşnama/okuw).
Fokus dolandyryşy: ulanyjyny düşündirişsiz "boş" sahypa geçirmezlik.
RTL-re regimeimi degişli sebitlerdäki rollar üçin goldanýar.
A11y: 'aria-disabled' + düşündiriş, eskalasiýanyň klawiatura elýeterliligi.
11) Ýagdaýlar we ýalňyşlyklar
403 (hukuk ýok): Roly we CTA mazmuny bolan dostlukly sahypa "Giriş soraň".
404 (çeşme ýok): gizlin obýektleriň barlygyny aýan etmäň.
413/422 (gaty köp/tassyklama): syýasatyň jikme-jikliklerini syzdyrmaň, bitarap düzüň.
Rate-limits/blokirleme: Taýmeri/blokirlemegiň şertini düşündiriň.
12) Metrikler
Access Denied Rate: rollar/ekranlar boýunça şowsuzlyklaryň paýy (erbet IA ýa-da syýasat barada signal).
Approval SLA: akymlar boýunça tassyklama wagtynyň mediany (çykyş, çäkler, KYC).
Mask Reveal Events: PII "açmagyň" ýygylygy (garaşylýan we esasly).
Error-to-Resolution: 403-den berlen elýeterlilige çenli wagt.
Least-Privilege Drift: artykmaç hukukly rollar (ulanmak boýunça detekt).
13) Anti-patternler
Hatalary "hiç zat bolmady" diýip gizläň.
Boş düwmeleri düşündirişsiz görkeziň.
Öz maglumatlaryny eýesine gizle.
Serwer syýasaty bolmazdan UI-guardlara bil baglamak.
Fiçeflaglary giriş bilen garyşdyrmak (dürli meseleler).
Amatlylyk üçin "god-mode" beriň.
14) Dizaýn-ulgamyň bellikleri (mysal)
json
{
"access": {
"badge": { "viewer":"#607D8B", "editor":"#4CAF50", "approver":"#FF9800", "admin":"#9C27B0" },
"lockColor": "#9E9E9E",
"maskChar": "•"
},
"states": {
"noAccess": { "bg":"var(--bg-elev)", "border":"var(--border)", "icon":"#9E9E9E" },
"approval": { "pending":"#FFC107", "approved":"#4CAF50", "rejected":"#F44336" }
},
"a11y": { "ariaDisabled": true, "explainDenial": true }
}
15) UI snippetler
Ugur gward:tsx import { Navigate, Outlet } from 'react-router-dom';
function GuardedRoute({perm}:{perm:Permission}){
const { has } = React.useContext(PolicyCtx);
if (has(perm)) return <Outlet/>;
return <Navigate to={`/403?perm=${encodeURIComponent(perm)}`} replace/>;
}
CTA kartoçkasy:
html
<article class="no-access">
<h3>Недостаточно прав</h3>
<p>Доступ к разделу «Выплаты» доступен ролям: Финансы/Админ.</p>
<button class="btn" data-open-request>Запросить доступ</button>
</article>
Audit žurnaly (gysgaça):
json
{
"ts": "2025-11-03T18:45:12Z",
"actor": "u_5412",
"action": "payout.approve",
"target": "withdraw#w_91822",
"ip": "194...12",
"result": "success"
}
16) QA-çek-sanawy
Nawigasiýa we IA
- Elýeterli däl bölümler menýuda ses çykarmaýar.
- CTA bilen düşnükli "giriş ýok" sahypalary/kartoçkalary bar.
Hereketler we hereketler
- Rugsatsyz düwmeler - 'disabled' + tooltip/tekst.
- Routes goralýar; düşündiriş bilen göni URL → 403.
- Serwer her hereketi tassyklaýar.
Maglumat
- PII/PAN/KYC syýasata görä gizlenýär.
- "Açyşlaryň" ýazgylary ýazylýar we täzeden ýazylýar.
- Eksport/hasabatlar rollara laýyk gelýär (analitika üçin agregatlar).
SoD/Approvals
- Inisiator öz haýyşnamasyny tassyklap bilmez.
- Çäk mukdary → köp basgançakly ugurlar.
A11u/Lokalizasiýa
- "Giriş ýok" lokallaşdyryldy; klawiatura nawigasiýasy işleýär.
- Kontrast/fokus halkasy AA-a laýyk gelýär.
Ygtybarlylyk
- Gysga TTL bilen rugsat kesesi; rol çalşylanda maýyplyk.
- PDP → UI güýji "defolt howpsuz" re modeiminde işleýär.
17) Dizaýn-ulgamdaky resminamalar
Компоненты: `GuardedRoute`, `Can`, `NoAccessCard`, `ApprovalBanner`, `Redact`.
Syýasatlar: rollaryň/hereketleriň matrisa, SoD düzgünleri, gizleniş derejesi.
Amal: giriş soragy, rollary öwrenmek/sertifikatlaşdyrmak, N hepdede bir gezek hukuklara gözegçilik etmek.
Do/Don 't-galereýa: "sebäpsiz boş düwmeler", "eýesine gizlemek", "serwer barlaglary bolmazdan UI" vs "düşündirilen çäklendirmeler we CTA".
Gysgaça gysgaça
Rol interfeýsleri - düşnükli maglumat arhitekturasy + berk syýasatlar + dostlukly düşündirişler. Diňe zerur zatlary görkeziň, duýgur maglumatlary gizläň, ugurlary we hereketleri goragçylar bilen goraň, auditde her bir möhüm wakany ýazga alyň we pula we laýyklyga täsir edýän wezipeleri paýlaşyň. iGaming-de bu diňe bir töwekgelçilikleri azaltman, eýsem toparlaryň işini has çalt we asuda edýär.