توثيق قيود تسجيل الدخول بالعنوان والوقت لأودو 19
دليل قيود تسجيل الدخول بعنوان IP والوقت: قواعد لكل مستخدم أو مجموعة والعناوين ونوافذ الوقت وما هو مشمول وأداة الاختبار والسجل وكيف لا تحجب نفسك.
يشرح الإصدار 1.0.0حُدّث في 22 أكتوبر 2026
ابدأ من هنا
ببساطة: كلمة المرور هي الشيء الوحيد بين الإنترنت ومحاسبتك. يعيد الموظفون استخدام كلمات المرور ويتشاركونها ويكتبونها على أي حاسوب. تضيف هذه الوحدة قيدين بسيطين وقويين تريدهما معظم الشركات: لا يسجّل الناس الدخول إلا من عناوين مكتبك أو الشبكة الخاصة (VPN)، وإلا في ساعات العمل. قواعد مختلفة لفرق مختلفة، وتُطبَّق القواعد في كل مكان يمكن دخول أودو منه.
| أنت تحدد | أودو يفعل |
|---|---|
| عناوين IP المسموحة لمستخدم أو مجموعة | يرفض تسجيل الدخول من أي عنوان آخر، حتى مع كلمة المرور الصحيحة. |
| الأيام والساعات المسموحة (مع منطقة زمنية) | يرفض تسجيل الدخول خارجها، ويمكنه إخراج الناس عندما تُغلق النافذة. |
| الاستثناءات | يخرج مستخدمين أو مجموعات تختارها من قاعدة. والمديرون معفون افتراضيًا. |
نصيحة: يُسجَّل كل رفض، وتخبرك أداة الاختبار مسبقًا بما سيحصل عليه شخص ما، وترفض الوحدة حفظ قاعدة تُخرجك أنت.
كيف تعمل القواعد
| السؤال | الجواب |
|---|---|
| على من تنطبق القاعدة؟ | على مجموعات المستخدمين والمستخدمين الذين تدرجهم. اترك الاثنين فارغين لتطبيقها على الجميع. وتُحسب المجموعة مع الأدوار التي تتضمنها (مدير المبيعات هو أيضًا مستخدم مبيعات). |
| من يُستثنى؟ | كل من تحت «باستثناء هذه المجموعات / المستخدمين». والمديرون (الإعدادات / مدير) معفون ما لم تضع علامة «تطبيق على المديرين أيضًا». |
| عدة قواعد؟ | على الشخص أن يستوفي كل قاعدة تنطبق عليه. |
| عنوان ووقت في قاعدة واحدة؟ | يجب استيفاء الاثنين: العنوان الصحيح والوقت الصحيح. |
| عدة نوافذ وقت؟ | تكفي أي واحدة منها. |
| قاعدة بلا أي قيد؟ | غير مسموحة: فعّل قيدًا واحدًا على الأقل. |
ببساطة: يحدث الفحص بعد التحقق من كلمة المرور، فلا يتعلم الغريب الذي لا يعرف كلمة المرور شيئًا عن قواعدك.
المتطلبات
| البند | التفاصيل |
|---|---|
| أودو | 19.0 (Community أو Enterprise) |
| التطبيقات المطلوبة | الأساس فقط (base وweb) |
| من يستطيع الإعداد | المديرون (الإعدادات / مدير) |
| الرخصة | OPL-1 (رخصة أودو الخاصة v1.0) |
التثبيت
- فُكّ ضغط الحزمة. بداخلها
taqnix_login_restrictions.zip؛ فُكّه لتحصل على المجلدtaqnix_login_restrictions. - انسخ المجلد إلى أحد مجلدات
addons_pathفي خادم أودو وأعد تشغيل أودو. - سجّل الدخول كمدير وفعّل وضع المطوّر ثم افتح التطبيقات واضغط تحديث قائمة التطبيقات.
- أزل مرشح «التطبيقات» وابحث عن Login Restrictions واضغط تثبيت.
# أو من سطر الأوامر ./odoo-bin -c odoo.conf -d YOUR_DATABASE -i taqnix_login_restrictions --stop-after-init
مهم: التثبيت لا يحجب أحدًا: لا توجد قاعدة حتى تنشئ واحدة. وإن كان أودو يعمل خلف وسيط عكسي (Nginx أو Apache أو موازن حمل) فاقرأ الفصل 6 قبل إنشاء قواعد العناوين.
إنشاء قاعدة
ببساطة: افتح الإعدادات ← المستخدمون والشركات ← قيود تسجيل الدخول واضغط جديد.
| القسم | الحقل | ما يفعله |
|---|---|---|
| من | مجموعات المستخدمين / المستخدمون | على من تنطبق القاعدة. الاثنان فارغان: الجميع. |
| من | باستثناء هذه المجموعات / المستخدمين | أشخاص لا تسري عليهم هذه القاعدة. |
| من | تطبيق على المديرين أيضًا | متوقف افتراضيًا، فيستطيع المدير دائمًا إصلاح قاعدة خاطئة. |
| ماذا يحدث | إنهاء الجلسات المفتوحة أيضًا | إخراج الناس عندما يخالفون القاعدة وهم مسجّلو الدخول بالفعل (الفصل 9). |
| ماذا يحدث | الرسالة المعروضة | تظهر في صفحة الدخول بعد كلمة المرور الصحيحة. يصبح {ip} عنوان الشخص. |
| ماذا يحدث | عنوانك الآن | العنوان الذي يراه أودو لك: افحصه قبل إنشاء قواعد العناوين. |
| من أين | السماح بعناوين IP هذه فقط | فعّله واسرد العناوين. |
| متى | السماح بهذه الأوقات فقط | فعّله وأضف نافذة وقت واحدة أو أكثر. |
عناوين IP
ببساطة: اسرد العناوين المسموحة واحدًا في كل سطر أو مفصولة بفواصل. والنص بعد
# تعليق.| اكتب | يعني |
|---|---|
203.0.113.7 | عنوان واحد |
10.0.0.0/8 | شبكة كاملة (CIDR) |
192.168.1.10-192.168.1.50 | نطاق |
192.168.1.* | بدل: من 192.168.1.0 إلى 192.168.1.255 |
2001:db8::/32 | شبكة IPv6 (وتعمل عناوين IPv6 المفردة أيضًا) |
مهم: خلف وسيط عكسي؟ لا يرى أودو إلا عنوان الوسيط ما لم تشغّله مع
proxy_mode = True في odoo.conf ويرسل الوسيط X-Forwarded-For. افحص حقل عنوانك الآن في قاعدة: يجب أن يظهر عنوانك أنت لا عنوان الوسيط. وبدون وضع الوسيط سيبدو كل شخص قادمًا من الوسيط.نصيحة: كثير من اتصالات المنازل يغيّر عنوانه. لمن يعملون من البيت استخدم VPN بعنوان ثابت واسمح بنطاق الـVPN.
نوافذ الوقت
| التفصيل | كيف يعمل |
|---|---|
| الأيام | ضع علامة على أيام النافذة. وعطلة نهاية الأسبوع متوقفة افتراضيًا. |
| من / حتى | ساعات من اليوم. «حتى» نفسها غير مشمولة: 8:00–18:00 تسمح بـ17:59 لا 18:00. |
| الورديات الليلية | إن كانت «حتى» أبكر من «من» (22:00–06:00) فتمتد النافذة بعد منتصف الليل. ويومها هو اليوم الذي تبدأ فيه: نافذة الاثنين 22:00–06:00 تسمح بالدخول حتى الثلاثاء 06:00. |
| المنطقة الزمنية | لكل نافذة منطقتها، فيمكن لفرع في بلد آخر أن تكون له ساعاته. |
| عدة نوافذ | تكفي أي واحدة، مثل 8:00–12:00 و14:00–18:00. |
| ساعة الخادم | يستخدم الفحص ساعة الخادم محوّلة إلى المنطقة الزمنية للنافذة. |
ما يراه الشخص وأين تُطبَّق
ببساطة: بعد كلمة المرور الصحيحة يحصل من يخالف قاعدة على رسالة القاعدة بدل أن يُسجَّل دخوله. وكلمة المرور الخاطئة تقول كالمعتاد «Wrong login/password».
| نقطة الدخول | مشمولة |
|---|---|
| صفحة الدخول (كلمة المرور، مفتاح المرور) | نعم |
| دخول جلسة عميل الويب (JSON-RPC) | نعم |
authenticate في XML-RPC وJSON-RPC | نعم |
| استدعاءات XML-RPC / JSON-RPC التي ترسل المعرّف وكلمة المرور (أو مفتاح API) في كل مرة | نعم |
| من هم مسجّلو الدخول بالفعل | نعم، عند تفعيل «إنهاء الجلسات المفتوحة أيضًا» (الفصل 9) |
| زوار الموقع العامون والإجراءات المجدولة وإجراءات الخادم | لا تتأثر: فهي لا تسجّل الدخول كشخص |
من هم مسجّلو الدخول بالفعل
ببساطة: من سجّل الدخول عند 17:50 لا ينبغي أن يظل يعمل عند منتصف الليل. مع تفعيل إنهاء الجلسات المفتوحة أيضًا، تُخرج النقرة التالية بعد إغلاق النافذة (أو بعد تغيّر العنوان إلى عنوان غير مسموح) الشخص وتأخذه إلى صفحة الدخول حيث تشرح القاعدة لماذا لا يستطيع العودة.
نصيحة: ألغِ التفعيل لقاعدة يجب أن تحرس لحظة الدخول فقط.
اختبر تسجيل دخول أولًا
ببساطة: الإعدادات ← المستخدمون والشركات ← اختبار تسجيل دخول (أو الزر في القاعدة) يجيب عن «ماذا سيحدث لو…؟» دون تسجيل دخول أحد.
ببساطة: اختر مستخدمًا وعنوانًا ولحظة. تقول النتيجة مسموح أو محجوب بواسطة قاعدة … مع السبب، أو أنه لا تنطبق أي قاعدة، وتسرد القواعد التي تنطبق على المستخدم.
سجل عمليات الدخول المحجوبة
ببساطة: يُكتب كل رفض في الإعدادات ← المستخدمون والشركات ← عمليات الدخول المحجوبة: متى والمدخل والعنوان والسبب والقاعدة ومن أين جاء (صفحة الدخول أو استدعاء API أو جلسة مفتوحة أُنهيت).
ببساطة: تُحفظ السجلات 90 يومًا. وتعرض كل قاعدة أيضًا كم عملية دخول حجبتها في آخر 30 يومًا.
احمِ نفسك
| الضمانة | ما تفعله |
|---|---|
| حارس القفل الذاتي | يرفض أودو حفظ قاعدة ستحجبك الآن، مع شرح. |
| المديرون معفون | لا تسري عليهم قاعدة ما لم تضع علامة «تطبيق على المديرين أيضًا». |
| اختبار تسجيل دخول | شاهد الأثر قبل أن تعتمد عليه. |
| مفتاح الإيقاف | إن حدث الأسوأ فعيّن متغير البيئة TAQNIX_LOGIN_RESTRICTIONS=off لعملية أودو وأعد التشغيل: تُتجاهل كل القواعد. أزله حين تصلح القاعدة. |
# شغّل أودو مع إيقاف كل القواعد
TAQNIX_LOGIN_RESTRICTIONS=off ./odoo-bin -c odoo.conf
# أو عطّل القواعد من سطر الأوامر
./odoo-bin shell -c odoo.conf -d YOUR_DB <<< "env['taqnix.login.rule'].search([]).write({'active': False}); env.cr.commit()"ما هي وما ليست
| غير مشمول | ما العمل |
|---|---|
| بديل لجدار الحماية أو VPN أو المصادقة الثنائية | هي طبقة إضافية. استخدمها معها. |
| عناوين مزيفة | يأتي العنوان من الاتصال (أو من وسيطك). شغّل أودو خلف وسيط تتحكم فيه فقط. |
| طرق دخول أخرى تضيفها وحدات طرف ثالث | تُشمل عندما تستخدم تسجيل دخول أودو القياسي. اختبر طريقتك بمحاولة حقيقية. |
| تقييد ما يفعله الناس بعد الدخول | استخدم لذلك حقوق الوصول في أودو. |
| المناطق الزمنية للأشخاص | تستخدم النوافذ المنطقة الزمنية التي تحددها، لا منطقة الشخص. |
للمطورين
ببساطة: تجاوز هذا الفصل إن كنت تستخدم الوحدة فقط.
| البند | التفاصيل |
|---|---|
| الخطافات | تستدعي res.users._login وres.users._check_uid_passwd المحرك بعد التحقق من الاعتماد؛ ويفحص ir.http._authenticate_explicit الجلسات المفتوحة. |
| المحرك | taqnix.login.engine: تعيد check(user, ip, now_utc) الزوج (rule, reason)، وترفع enforce(uid) الاستثناء AccessDenied. |
| النماذج | taqnix.login.rule وtaqnix.login.window وtaqnix.login.attempt. |
| مساعدات العناوين | models/iptools.py: parse_list وip_in_list. |
engine = env['taqnix.login.engine']
rule, reason = engine.check(user, '198.51.100.7') # (rule, 'ip') أو (None, None)
from odoo.addons.taqnix_login_restrictions.models import iptools
iptools.ip_in_list('10.1.2.3', iptools.parse_list('10.0.0.0/8')) # Trueاستكشاف الأخطاء
| المشكلة | ما العمل |
|---|---|
| الجميع محجوبون، حتى من في المكتب | «عنوانك الآن» يعرض عنوان وسيط: فعّل proxy_mode وترويسة X-Forwarded-For، أو اسرد عنوان الوسيط. |
| حجبتُ نفسي | شغّل أودو مرة بـTAQNIX_LOGIN_RESTRICTIONS=off وأصلح القاعدة. |
| قاعدة لا تنطبق على شخص | قد يكون مديرًا (معفى) أو في مجموعة مستثناة أو ليس في مجموعات القاعدة. استخدم اختبار تسجيل دخول. |
| الوقت يبدو خاطئًا | افحص المنطقة الزمنية للنافذة وساعة الخادم. |
| يُخرَج الناس في منتصف اليوم | «إنهاء الجلسات المفتوحة أيضًا» مفعّل وأُغلقت النافذة أو تغيّر العنوان. ألغِ التفعيل أو وسّع النافذة. |
| شخص يقول «Wrong login/password» | كلمة المرور خاطئة. أما رفض القاعدة فيعرض رسالة القاعدة بدلًا منها. |
التحديث والإزالة
استبدل المجلد بالإصدار الجديد وأعد تشغيل أودو ونفّذ -u taqnix_login_restrictions. تبقى قواعدك محفوظة. للإزالة ألغِ التثبيت من التطبيقات: يختفي كل قيد دفعة واحدة ويُحذف السجل.
الدعم
المساعدة في التثبيت وإصلاح الأخطاء مشمولان لمدة 6 أشهر مع تحديثات مدى الحياة. تواصل معنا عبر صفحة السوق التي اشتريت منها الوحدة أو راسل support@taqnix.com مع إصدار أودو ولقطة شاشة.