سجل التغييرات
ما الجديد؟
كل تحسين للمنصة، كما هو الشحن.
· kamo-shared-library
Add 7 module-access rights (IDs 112-118)
حسناً، (فيو كاليندار) {\POS(192,230)}
· SecurityService
Pass human-readable expiry time to email verification template
Add humanizeMinutes() helper that formats minutes as days/hours/minutes (e.g. "1 day" for 1440 min). Pass as {{expiryText}} to match updated canonical template variable.
· kamo-shared-library
تحسين نموذج التحقق بالبريد الإلكتروني - URL fallback, expiry text, subject
- يضاف وصلة تحقق ذات تردد واضح تحت الزر على أنه تداعيات - Switch expiryتغيّر مِنْ {expiryMinutes} إلى {expiryText} شكل الإنسان القابل للقراءة (مثل "يوم واحد" بدلاً من "1440 دقيقة" -مستجدّة مُخضعة لـ "تقديم بريد إلكتروني مُرتبط بحسابك {orgName}"
· kamo-internal
خدمة البريد الإلكتروني الكامل HTML مع الإطار الخارجي للنموذج
-تسلسل (فول إيميل هتمل) اللفافات الداخلية في الإطار الخارجي (الشعار الرأسي، العنوان/الملكية الفرعية، مجال المحتوى، شعار القدم + org) بإستخدام الـ (يورل) المطلق حتى يلتقط الزبائن الصور - الإطار الخارجي (خيارات النقل، العنوان، العنوان الفرعي) حواجز الجسد، خارج الفرن، واستعيدت على حمولة نموذجية -التعامل مع (ساف) الآن يستعمل (تسلسل (فول إيميل هتمول لذا أرسلوا رسائل إلكترونية مطابقة المبني قبل المقابلة
· SecurityService
Add code-based email verification path to /verify-email endpoint
The endpoint now handles both token (link click) and userId+code (manual 6-digit entry). Token path unchanged; code path hashes the supplied code and matches against the active token for that userId.
· KlusterServices
Add weekly image prune and journal vacuum CronJob for k1m1
CronJob runs every Sunday 3am, privileged, pinned to k1m1. - crictl rmi --prune removes unused container images - nsenter journal vacuum enforces 500MB cap - CI/CD step added to deploy-services workflow
· KlusterServices
Add Docs deploy step to workflow
· kamo-register
طلب *** في صفحة التحقق قبل كل محاولة للتحقق/الرد
*** يعاد بعد كل عمل (نجاح أو فشل) ويلزم حل كل محاولة لاحقة.
· kamo-register
Rename /resend-verification page to /verification
· kamo-register
مضافا إليه/صفحة التحقق من النتائج المتعلقة بإعادة توجيه قطع الأشجار
يخلق مساراً قائماً بذاته/تحقيقياً يقبل؟ ? اكس يجعل السجل يستجيب اختيارياً تعمل الصفحات بدون اسم مستعار للتسجيل.
· kamo-register
Reesign email verification screen + fix resendmail
- PostCompletionScreen: full-page layout with animated org background, بطاقــة الازدجاج، الشعار، علب رمزية من 6 أرقام، النجاح/الولايات المتحققة - التصليح: إرسال بريد إلكتروني في هيئة الطلب (يتطلب ذلك الدعم)
· kamo-register
مخزن كامبو - داخلي - ٣ أحجام، مين -
وينتج الآن جهاز غلاف كلوب ثلاث عصيات من طراز PNG (50/150/350px) عن طريق الأغطية المتطابقة. لـ (كامو إنترنال) بعد إعادة التسجيل لقد خدعنا (نقطة نهاية جديدة غير متوقّعة) محروس بالبريد الإلكتروني: verified=false. AvatarUrl is no longer sent in the registration (جوسون) الفشل في تحميل الآفاتار غير ثابت لذا لا يزال التسجيل مكتملاً.
· SecurityService
Add register-photo endpoint for unauthenticated post-registration avatar upload
POST **************** accepts userId + file/fileSm/fileMd/fileLg without a session. Guards: user must be unverified and have no avatar yet, preventing abuse against existing accounts. Stores files to MinIO with the same path structure and sized variants as the authenticated /avatars/photo endpoint.
· kamo-login
يستعاض عن عبارة " EMAIL-NOT " ببطاقة تحقق ثرية
عندما يفشل الدخول مع (إيميل) يُستبدل ببطاقة الدخول الآن شاشة "إفحصي جهازكِ" مُحاكاة مُحاكاة "سف جي" مع فتحة شرارة عائمة، عرض بريد إلكتروني مخفي، زر إرسال بريد إلكتروني مع 30 ثانية حلقة العد التنازلي، النجاح/الإنذارات/الحد الأقصى وقع على الرابط وتستعمل جميع عمليات الانتقال الجاهزة بمقياس أعلى. - التلميذ/اللوج/اللوحة: تمرير جميع حقول الخطأ الخلفية (ليس مجرد رسالة) يَصِلُ المستعملُ إلى الزبونِ - **** لا أعرف - التطبيق/الصفحة: عنصر البطاقات، البريد الإلكتروني: /ReendLoading إعادة التجميع/الوضع النهائي، إعادة الاسترداد، 30 ثانية UseEffect, EMAIL NOT VERIFIED detection in performLogin
· kamo-register
Extend photo upload to support AVIF and SVG formats
يضيف الصور/المستندات والصورة/الصوت +xml إلى القائمة التي يقبلها الملف regex. يُحدّثُ العلامةَ التلميحيةَ لقائمة كُلّ الأشكال الستّ. ويقبل الكامو الداخلي بالفعل الصورة/* حتى لا توجد تغييرات هناك.
· kamo-register
يضاف محرر للصور الفوتوغرافية المتحركة إلى درجة التسجيل
"المرآة من فيلم "فيوتوكروبديال" من فيلم "كامو-إنترنال" - يُفتح رقم هاتف المحاصيل فور اختيار الملفات - مقلاة عن طريق السحب أو الحدوث عن طريق البرق أو الشريحة )١-٥ ×( - دليل النفقة الدائرية المحطم يظهر المنطقة المحصولة - تُنتج قماش × 400 PNG مخزنة كقاعدة 64 avatarUrl - زر إعادة التشغيل على ما قبل الاستعراض يسمح للمستعمل بالتكيف بعد الادخار
· kamo-register
مضافا إليه/طريقاً للقطع/الجو والكشف الآلي للبلد
العميلة (آي بي) إلى مُراقبة شركة الأمن (جيو ليت) رصد البلد في FormyCountry آليا في تحميل الصفحات.
· SecurityService
Add GET /api/security/geoip/me for client IP country lookup
Reads real client IP from X-Forwarded-For / X-Real-IP headers, does a GeoLite2 lookup, and returns { country_code, country_name }. Used by kamo-register's country auto-detection step.
· kamo-register
يستعاض عن عبارة h*** بعبارة kamo-capcha-widget inline in Finish step
· kamo-register
أضف /api/capcha/challenge proxy route
· kamo-register
أضف بائع كامبوتشا - ويدج، وأزيل حزمة h***
· kamo-register
SP6 register wizard refactor — split PersonalInfo, add real registration API
- يستعاض عن FormPersonalInfo ب FormName (name fields) and FormAvatar (Avatar Creator born with generate/upload/skip modes for 13+) - تحذف الاستمارة " استعادة القدرة على العمل " - Refactor FormPassportID to dual-field layout: alias always shown, email only for 13+; callbacks replace window global أضف التسجيلات مع الطرازات - يضاف ما يلي: - Refactor RegisterFlow: dynamic step list based on shouldIncludeAgeCheck and isUser13Plus, replace handle***Submit stub with real API call, render PostCompletionScreen on success
· InitializerService
SP5 migrate KamoCRM agereq to ALL_WORK_ELIGIBLE
Add KamoCRMAgeReqUpdateRunner (order 10) — conditional idempotent UPDATE on startup; WHERE clause checks old value so re-runs are no-ops. Errors are swallowed so startup is not blocked. Update DataLoader to seed ALL_WORK_ELIGIBLE on fresh installs.
· SecurityService
Implement SP4 email verification and registration wiring
- Delete legacy email/VerificationEmail.java (hardcoded SMTP stub) - Add **************** (mirrors recovery package pattern) - Add **************** — token generation/SHA-256 hashing, send/verify/resend flows backed by **************** - Add **************** — alias+email uniqueness checks, User creation, triggers verification email on register - SecurityController: wire RegistrationService into /register endpoint, add EMAIL_NOT_VERIFIED (403) gate on login, add POST /verify-email and POST /register/resend-verification endpoints - Bump kamo-shared-library to 1.4.0
· kamo-shared-library
مضافا إليها: Token entity + repo + User.alias/emailVerified + UserRepo queries; mid 1.4.0 (SP4)
· InitializerService
Add SP4 email_verification_tokens DDL + User alias/email_verified columns
· kamo-marketing
يضاف مقطع علامة تجارية إلى النص القانوني الأرجل
· kamo-internal
إضافة صفحات حسابية للمسائل الهاتفية والأمنية (SP3)
أضف ذلك SecurityService /api/account/*. سينس سيف عبر جميع المواقع الثلاثة.
· kamo-login
Wire real API calls into /recover page (SP3)
يُستبدلُ كُلّ المُزَوَّلِ مِنْ مِنَاوبِ مُتَوَفَّرةِ مَع نداءاتِ الاستردادِ. Adds SMS OTP التحقق من المرحلة، والمدخلات البريدية الأولية، وخطوة كلمة المرور الجديدة، والهبوط المكسور عبر .
· kamo-login
مضافا إليه/مدير/مستقبِل موكّل العميل العميل (البرنامج 3)

كونك ينتظرك
ابدأ مجانا في دقائق. أضف المنتجات كلما كنت مستعدا - لا هجرة، لا دخول جديد.
مجانا إلى الأبد - لا حاجة إلى بطاقة ائتمان