İstifadəçilər və təhlükəsizlik
Rollar, icazələr, endirim limitləri, audit log, aktiv sessiyalar və məlumat izolyasiyası.
Məlumat izolyasiyası
Sistem SaaS prinsipi ilə işləyir — bir proqramda çoxlu şirkət var, lakin hər şirkətin məlumatı digərlərindən tam ayrıdır. İzolyasiya iki qatda təmin olunur:
- Sorğu səviyyəsində — bütün əsas cədvəllərdə şirkət kimliyi var və hər sorğuya avtomatik filtr əlavə olunur. Kod bunu unutmaq imkanına malik deyil.
- İcazə səviyyəsində — modelə müraciət edilərkən onun cari şirkətə aid olduğu ikinci dəfə yoxlanılır.
Nəticədə URL-də nömrəni dəyişməklə (məsələn/panel/mehsullar/58→/panel/mehsullar/59) başqa şirkətin məlumatına çıxmaq mümkün deyil — sorğu boş nəticə qaytarır.
Rollar
Yeddi hazır rol var; hər biri şirkət daxilində ayrıca qurulur:
| Rol | Tipik istifadə |
|---|---|
| Şirkət sahibi | Tam nəzarət, ayarlar və rollar daxil |
| Administrator | Gündəlik idarəetmə; rol və ayarları dəyişə bilmir |
| Filial müdiri | Yalnız öz filialının əməliyyatları və hesabatları |
| Kassir | Satış və növbə; yalnız öz satışlarını görür |
| Anbardar | Məhsul, qəbul, transfer, inventarizasiya; maliyyəni görmür |
| Mühasib | Maliyyə və hesabatlar; satış edə bilmir |
| Satıcı | Satış və öz komissiyası |
İcazələr
Rol icazələrin toplusudur. Hər icazə ayrıca aktivləşdirilə bilər — Rollar və icazələr bölməsində istənilən rolu (sahib xaric) fərdiləşdirin. Nümunə icazələr:
- Məhsul yaratmaq / silmək
- Qiymət dəyişmək
- Maya dəyərini görmək
- Endirim etmək / limitsiz endirim etmək
- Satışı qaytarmaq / ləğv etmək
- Kassadan pul çıxarmaq
- Xərcləri görmək
- Mənfəəti görmək
- Borcları görmək
- Kredit limitini aşmağa icazə vermək
- Hesabat export etmək
- Audit log-a baxmaq
Endirim limiti
Hər istifadəçi üçün maksimum endirim faizi təyin edilir. Kassir 5% limitə malikdirsə, 7% endirim etməyə çalışdıqda sistem administrator PIN-i tələb edir. Təsdiq verən şəxsin adı və endirim faizi audit log-a yazılır.
PIN istifadəçi profilində təyin olunur və şifrələnmiş şəkildə saxlanılır.
Audit log
Kritik əməliyyatlar dəyişməz şəkildə qeydə alınır:
04.09.2026 12:32
İstifadəçi: Elvin Məmmədov
Əməliyyat: Qiymət dəyişdirildi
Məhsul: Coca-Cola 1L
Dəyişiklik: 1.80 → 1.50 AZN
IP: 192.168.1.42
Cihaz: Chrome / Windows
Loglanan əməliyyatlar:
- Məhsulun yaradılması, dəyişdirilməsi, silinməsi
- Qiymət dəyişikliyi (köhnə və yeni dəyər)
- Stok düzəlişi və inventarizasiya
- Satışın ləğvi (səbəblə birlikdə)
- Qaytarma
- Endirim
- Xərc yaradılması
- Kassa mədaxil / məxaric
- Müştəri və təchizatçı borcunun dəyişməsi
- İstifadəçi icazələrinin dəyişməsi
- Növbənin açılıb-bağlanması
Audit log administrator tərəfindən də silinə bilmir — bu, sistem səviyyəsində bloklanıb. Yalnız oxumaq mümkündür.
Sənədlərin silinməməsi
Məhsul, müştəri və təchizatçı fiziki silinmir — arxivə köçürülür (soft delete), ona görə köhnə sənədlərdəki adlar itmir. Satış və maliyyə sənədləri isə normal istifadəçi tərəfindən heç vaxt silinmir: satış ləğv edildikdə statusu dəyişir, sətirlər və tarixçə qalır.
Aktiv sessiyalar
Aktiv sessiyalar bölməsində kimin haradan daxil olduğu görünür: istifadəçi, IP, brauzer, əməliyyat sistemi, son aktivlik vaxtı. Şübhəli sessiyanı uzaqdan bağlaya bilərsiniz — həmin cihazda giriş dərhal kəsilir.
Texniki müdafiə
- CSRF (saxta sorğu) müdafiəsi bütün formalarda
- XSS müdafiəsi — bütün çıxış məlumatı avtomatik ekranlaşdırılır
- SQL injection müdafiəsi — parametrləşdirilmiş sorğular
- Şifrələr bcrypt ilə hash edilir, heç vaxt açıq saxlanılmır
- Giriş cəhdlərinə limit: 5 uğursuz cəhddən sonra müvəqqəti bloklama
- Sessiya təhlükəsizliyi: girişdən sonra sessiya kimliyinin yenilənməsi
- API üçün token əsaslı autentifikasiya
Ehtiyat nüsxə
Verilənlər bazası gündəlik avtomatik ehtiyat nüsxələnir. Son 7 günün gündəlik və həftəlik nüsxələri saxlanılır. Nüsxələr ayrıca saxlama sahəsinə köçürülə bilər.
# Gündəlik ehtiyat nüsxə (cron)
0 3 * * * cd /path/to/app && php artisan backup:run