انتقل إلى المحتوى
DevMarket
وحدات Odooإضافات ووردبريسقوالب ووردبريسقوالب Shopifyقوالب التطبيقاتالسكربتات والأدواتالمدونةبِع على DevMarket

توثيق قيود تسجيل الدخول بالعنوان والوقت لأودو 19

دليل قيود تسجيل الدخول بعنوان IP والوقت: قواعد لكل مستخدم أو مجموعة والعناوين ونوافذ الوقت وما هو مشمول وأداة الاختبار والسجل وكيف لا تحجب نفسك.

يشرح الإصدار 1.0.0حُدّث في 22 أكتوبر 2026

ابدأ من هنا

ببساطة: كلمة المرور هي الشيء الوحيد بين الإنترنت ومحاسبتك. يعيد الموظفون استخدام كلمات المرور ويتشاركونها ويكتبونها على أي حاسوب. تضيف هذه الوحدة قيدين بسيطين وقويين تريدهما معظم الشركات: لا يسجّل الناس الدخول إلا من عناوين مكتبك أو الشبكة الخاصة (VPN)، وإلا في ساعات العمل. قواعد مختلفة لفرق مختلفة، وتُطبَّق القواعد في كل مكان يمكن دخول أودو منه.
أنت تحددأودو يفعل
عناوين IP المسموحة لمستخدم أو مجموعةيرفض تسجيل الدخول من أي عنوان آخر، حتى مع كلمة المرور الصحيحة.
الأيام والساعات المسموحة (مع منطقة زمنية)يرفض تسجيل الدخول خارجها، ويمكنه إخراج الناس عندما تُغلق النافذة.
الاستثناءاتيخرج مستخدمين أو مجموعات تختارها من قاعدة. والمديرون معفون افتراضيًا.
نصيحة: يُسجَّل كل رفض، وتخبرك أداة الاختبار مسبقًا بما سيحصل عليه شخص ما، وترفض الوحدة حفظ قاعدة تُخرجك أنت.

كيف تعمل القواعد

السؤالالجواب
على من تنطبق القاعدة؟على مجموعات المستخدمين والمستخدمين الذين تدرجهم. اترك الاثنين فارغين لتطبيقها على الجميع. وتُحسب المجموعة مع الأدوار التي تتضمنها (مدير المبيعات هو أيضًا مستخدم مبيعات).
من يُستثنى؟كل من تحت «باستثناء هذه المجموعات / المستخدمين». والمديرون (الإعدادات / مدير) معفون ما لم تضع علامة «تطبيق على المديرين أيضًا».
عدة قواعد؟على الشخص أن يستوفي كل قاعدة تنطبق عليه.
عنوان ووقت في قاعدة واحدة؟يجب استيفاء الاثنين: العنوان الصحيح والوقت الصحيح.
عدة نوافذ وقت؟تكفي أي واحدة منها.
قاعدة بلا أي قيد؟غير مسموحة: فعّل قيدًا واحدًا على الأقل.
ببساطة: يحدث الفحص بعد التحقق من كلمة المرور، فلا يتعلم الغريب الذي لا يعرف كلمة المرور شيئًا عن قواعدك.

المتطلبات

البندالتفاصيل
أودو19.0 (Community أو Enterprise)
التطبيقات المطلوبةالأساس فقط (base وweb)
من يستطيع الإعدادالمديرون (الإعدادات / مدير)
الرخصةOPL-1 (رخصة أودو الخاصة v1.0)

التثبيت

  1. فُكّ ضغط الحزمة. بداخلها taqnix_login_restrictions.zip؛ فُكّه لتحصل على المجلد taqnix_login_restrictions.
  2. انسخ المجلد إلى أحد مجلدات addons_path في خادم أودو وأعد تشغيل أودو.
  3. سجّل الدخول كمدير وفعّل وضع المطوّر ثم افتح التطبيقات واضغط تحديث قائمة التطبيقات.
  4. أزل مرشح «التطبيقات» وابحث عن 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 مع إصدار أودو ولقطة شاشة.