GH GambleHub

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)

BölümOýunçySapportMaliýeYlalaşyk/TöwekgelçilikAffiliatesAdmin
Profil/çäkler(öz)R/W (talap boýunça)RR/W RR
Tölegler (goýumlar/netijeler)(öz)RR/W (geçirmek)R/W (freeze/hold)RR
KUS/resminamalar(öz)R (bölekleýin maskir.) R (maskir.) R/W (höküm)R
Nyrhlar/Taryh(öz)RRRR
Mahabat/bonuslarR/W (hasaplamak)RR/W (hyzmatdaşlar)R
UlanyjylarR (bilet boýunça)RR (hyzmatdaşlar)R/W
R - okamak, W - ýazmak. Gizlemek - maglumat syýasaty boýunça (PII/PAN/KYC).

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.

Snippet (React):
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.
Görkeziş syýasaty:
  • Doly - ýazgynyň roly/eýesi.
  • Gizlenen - sapport, maliýe (eýesi däl).
  • Jemlenen - analitika (şahsyýetnamasyz).
Gizlenýän komponent:
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.

Contact

Biziň bilen habarlaşyň

Islendik sorag ýa-da goldaw boýunça bize ýazyp bilersiňiz.Biz hemişe kömek etmäge taýýar.

Integrasiýany başlamak

Email — hökmany. Telegram ýa-da WhatsApp — islege görä.

Adyňyz obýýektiw däl / islege görä
Email obýýektiw däl / islege görä
Tema obýýektiw däl / islege görä
Habar obýýektiw däl / islege görä
Telegram obýýektiw däl / islege görä
@
Eger Telegram görkezen bolsaňyz — Email-den daşary şol ýerden hem jogap bereris.
WhatsApp obýýektiw däl / islege görä
Format: ýurduň kody we belgi (meselem, +993XXXXXXXX).

Düwmäni basmak bilen siz maglumatlaryňyzyň işlenmegine razylyk berýärsiňiz.