# الإجراءات المحمية

_التطبيقات › الإعدادات › المستخدمون والشركات_

![الإجراءات المحمية](https://atloriaassets.blob.core.windows.net/assets/a438221c-c1af-407c-b9e6-a56c986db846/df3ea0b3a755d99508a8605977418d09.png)
*الإجراءات المحمية — الإعدادات › المستخدمون والشركات › الإجراءات المحمية*

## نظرة عامة

تعرض صفحة **الإجراءات المحمية** قائمة الإجراءات التي تتطلب صلاحية محددة قبل تنفيذها. يستخدمها مدير المالية ومسؤولو العمليات لمراجعة الإجراءات المتاحة للأدوار والتأكد من ارتباط كل إجراء بالرمز والطريقة والنموذج الصحيحين.

تساعدك هذه القائمة على التحقق من الإجراءات المسجلة، وحالة تفعيلها، والأدوار التي مُنحت لها الصلاحية. استخدمها خصوصاً عند مراجعة ضوابط الوصول أو عند توقف استخدام إجراء بعد إزالة وحدة أو إعادة تسمية طريقة برمجية.

## الإعدادات

يمثل كل سجل إجراءً محمياً مستقلاً. قبل الاعتماد على الإجراء ضمن الأدوار، راجع بياناته الأساسية وتأكد من أن الرمز والحالة وارتباطه بالنموذج والطريقة يعكسون الإجراء الفعلي المسجل في النظام.

| الحقل | الغرض منه |
|---|---|
| التسمية (Label) | الاسم المقروء الذي يظهر عند اختيار الإجراء ضمن الأدوار. هذا الحقل مطلوب. |
| الرمز (Code) | معرّف فريد عالمياً للإجراء، ويُستخدم مع `@sherkety_guarded`. يتبع عادة الصيغة `<module>.<model>.<short_action>`. هذا الحقل مطلوب. |
| الفئة (Category) | تجميع الإجراءات في واجهة اختيار الأدوار، مثل المدفوعات أو الفواتير. |
| نشط (Active) | يحدد ما إذا كان الإجراء مستخدماً. اجعله غير نشط عندما لا يعود مُزيّن الإجراء مسجلاً، مثل حالة إزالة وحدة أو إعادة تسمية أثناء إعادة هيكلة. |
| اسم النموذج (Model Name) | النموذج المالك للإجراء، مثل `account.payment`. يمكن اكتشافه من فئة المُزيّن عند المزامنة عندما يكون ذلك ممكناً. |
| اسم الطريقة (Method Name) | اسم طريقة Python على النموذج المالك التي يمثلها الإجراء. |
| الوصف (Description) | وصف تفصيلي للإجراء يظهر كتلميح للمستخدم. |
| ممنوح للأدوار (Granted to roles) | الأدوار التي تتضمن هذا الإجراء ضمن `allowed_action_ids`. هذه المعلومة للعرض فقط من هذه الصفحة؛ يكون تعديل الارتباط من جانب الدور. |

> **ملاحظة:** لا تعتمد على التسمية وحدها عند المراجعة. الرمز هو المعرّف الفريد للإجراء، بينما التسمية مخصصة للعرض في أداة اختيار الدور.

## سير العمل

1. انتقل إلى **الإعدادات** > **المستخدمون والشركات** > **الإجراءات المحمية** لمراجعة قائمة الإجراءات المسجلة.

   ![الإجراءات المحمية](https://atloriaassets.blob.core.windows.net/assets/a438221c-c1af-407c-b9e6-a56c986db846/851e63b20522ccdb8289089b5dee493a.png)
*الإجراءات المحمية — الإعدادات › المستخدمون والشركات › الإجراءات المحمية*

2. عند التحقق من أن الإجراء هو المطلوب، راجع **التسمية (Label)** و**الرمز (Code)** معاً.
   
   - اختر السجل الذي يحمل التسمية المفهومة للمستخدمين عند اختيار الصلاحيات.
   - تأكد من أن **الرمز (Code)** فريد ويتبع اصطلاح تسمية واضحاً يبيّن الوحدة والنموذج والإجراء المختصر.
   - لا تستخدم اختلاف التسمية دليلاً على اختلاف الإجراء ما لم يكن الرمز مختلفاً أيضاً.

3. إذا كنت تراجع نطاق الإجراء، افحص **الفئة (Category)** و**اسم النموذج (Model Name)** و**اسم الطريقة (Method Name)**.
   
   - استخدم الفئة لتحديد موضع الإجراء ضمن واجهة اختيار الأدوار.
   - راجع اسم النموذج والطريقة للتأكد من أن السجل يشير إلى الإجراء المملوك للنموذج المقصود.
   - استخدم **الوصف (Description)** لفهم الغرض التشغيلي من الإجراء عند توفره، إذ يظهر هذا الوصف كتلميح.

4. عند اتخاذ قرار بشأن استمرار استخدام الإجراء، راجع حالة **نشط (Active)**.
   
   - إذا كان مُزيّن الإجراء ما زال مسجلاً ويُستخدم في النظام، أبقِ الإجراء نشطاً.
   - إذا لم يعد المُزيّن مسجلاً بسبب إزالة وحدة أو إعادة تسمية ضمن إعادة هيكلة، اجعل الإجراء غير نشط ضمن إعدادات السجل.
   - لا تستنتج أن الإجراء غير مستخدم من عدم ظهور أدوار في **ممنوح للأدوار (Granted to roles)**؛ فهذا الحقل يعرض الأدوار المرتبطة فقط.

5. إذا كان الهدف هو مراجعة منح الصلاحيات، استخدم **ممنوح للأدوار (Granted to roles)** لتحديد الأدوار التي تتضمن الإجراء.
   
   - اعتبر هذا الحقل مرجعاً معلوماتياً عند التدقيق.
   - عدّل منح الإجراء من جانب الدور، لأن قائمة الأدوار المعروضة هنا ليست الجانب القابل للتعديل من الارتباط.

6. إذا قررت إزالة سجل من القائمة، حدّد السجل المعني ثم استخدم **إزالة**.

   راجع التسمية والرمز قبل الإزالة للتأكد من أنك تستهدف الإجراء الصحيح، خصوصاً عند وجود إجراءات متقاربة ضمن الفئة نفسها.

> **تحذير:** لا تُزل سجلاً استناداً إلى تشابه التسمية فقط. راجع **الرمز (Code)** و**اسم النموذج (Model Name)** و**اسم الطريقة (Method Name)** قبل تنفيذ **إزالة**.

## أمثلة

لنفترض أنك تراجع إجراءً محمياً خاصاً بمدفوعات العملاء:

1. افتح قائمة **الإجراءات المحمية** من **الإعدادات** > **المستخدمون والشركات**.

2. ابحث عن السجل ذي **التسمية (Label)**: `اعتماد دفعة عميل`.

3. تحقق من **الرمز (Code)**: `account.payment.approve`، وتأكد من أنه يوضح الوحدة `account` والنموذج `payment` والإجراء المختصر `approve`.

4. راجع **الفئة (Category)** لتكون `Payments`، ثم تحقق من أن **اسم النموذج (Model Name)** هو `account.payment` وأن **اسم الطريقة (Method Name)** يمثل طريقة الإجراء المرتبطة بهذا النموذج.

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

6. راجع **ممنوح للأدوار (Granted to roles)** لمعرفة الأدوار التي تتضمن الإجراء، مثل دور مسؤول المدفوعات. إذا احتاجت الصلاحيات إلى تغيير، نفّذ التعديل من سجل الدور المرتبط، وليس من هذه القائمة.

7. إذا تبيّن أن السجل لم يعد مطلوباً نهائياً، حدده ثم اختر **إزالة** بعد التحقق الأخير من الرمز والنموذج والطريقة.

## نصائح

> **نصيحة:** استخدم تسميات واضحة ومباشرة في **التسمية (Label)**، لأنها تظهر للمستخدمين عند اختيار الإجراءات للأدوار.

> **نصيحة:** نظّم الإجراءات باستخدام **الفئة (Category)** لتسهيل العثور على الإجراءات المتقاربة، مثل إجراءات المدفوعات أو الفواتير.

## استكشاف الأخطاء وإصلاحها

| المشكلة | السبب المحتمل | المعالجة |
|---|---|---|
| يظهر الإجراء في القائمة ولكن لا ينبغي استخدامه بعد الآن. | لم يعد مُزيّن الإجراء مسجلاً، مثل حالة إزالة وحدة أو إعادة تسمية طريقة. | راجع **نشط (Active)** واجعل الإجراء غير نشط عند انطباق هذه الحالة. |
| لا يظهر أي دور ضمن **ممنوح للأدوار (Granted to roles)**. | لا يتضمن أي دور هذا الإجراء ضمن `allowed_action_ids`. | راجع إعدادات الأدوار المرتبطة؛ تعديل المنح يتم من جانب الدور. |
| توجد إجراءات بتسميات متشابهة ويصعب تمييزها. | التسمية مخصصة للعرض وقد تكون متقاربة بين إجراءات مختلفة. | ميّز السجل باستخدام **الرمز (Code)** و**اسم النموذج (Model Name)** و**اسم الطريقة (Method Name)**. |
| تم اختيار سجل غير صحيح للإزالة. | الاعتماد على التسمية أو الفئة دون التحقق من المعرّف الفريد. | قبل استخدام **إزالة**، طابق الرمز مع النموذج والطريقة ووصف الإجراء. |

## روابط ذات صلة

- [الأدوار](doc:sherkety-role)
- [الشركات](doc:res-company)
- [الإعدادات — مسار التعلم](doc:workflows-sherkety)
- [الإعدادات — نظرة عامة](doc:sherkety-overview)
- [إدارة اللافتات](doc:banner-management)
- [ألوان الحالة](doc:sherkety-status-model)
- [Messages](doc:whatsapp-message)
- [Templates](doc:whatsapp-template)
- [Books](doc:account-book)
- [مصفوفة الصلاحيات](doc:account-permission-rule)
- [المستخدمون](doc:res-users)
- [مجموعات الشركات](doc:sherkety-company-group)
- [مجموعات العملاء](doc:sherkety-partner-group)
- [Messages — مرجع الحقول](doc:whatsapp-message-ref)
- [الشركات — مرجع الحقول](doc:res-company-ref)
