ملحوظة:
- ليس شرطاً أن تكون محددات الصلاحيات الخاصة بالمستخدم ( الموجودة في جدول المستخدمين ) هي نفس المحددات ( الموجودة بجدول المجموعات ).
فمثلاً:
1- إيقاف المستخدم وتجميد عضويته --> هذه خاصة بالمستخدم فقط ( إذا تم تفعيلها تم إيقاف هذا المستخدم فقط )، لذلك هذا المحدد يكون داخل مصفوفة تراخيص المستخدم الخاصة.
وإذا تم وضع هذا المحدد في حقل التراخيص في "جدول المجموعات"، عندها يمكنك إيقاف مجموعة كاملة من المستخدمين وتجميد عضويتهم، إذا فعلت هذا الترخيص على مجموعة مثل الأعضاء مثلاً- فسيتم إيقاف أي مستخدم منتمي لهذه المجموعة-
إذن يفضل أن يكون هذا المحدد ضمن تراخيص "المستخدم" - أي في حقل تراخيص جدول المستخدمين فقط.
2- منع المستخدم من دخول لوحة التحكم --> نعلم أن هذا الترخيص خاص بمجموعة "المدراء"، فإذا تم إبطال هذه الصلاحية من هذه المجموعة لن يستطيع أي مستخدم من تلك المجموعة الدخول للوحة التحكم إلا إذا تم تفعيلها... لكن لاحظ أنه من الممكن أن تكون هذه الخاصية موقوفة أو تم إبطالها في جميع المجموعات، وبالرغم من ذلك تجد مستخدم لديه هذا الترخيص حتى ولو كان ينتمي لمجموعة الأعضاء.. فهذا راجع إلا أنه يحمل هذا الترخيص في مجموعة صلاحياته الخاصة ( الموجودة في حقل الصلاحيات في جدول المستخدمين) وأنه تم إعطاءه هذا الترخيص بناء على أن "مجموعة صلاحيات المستخدم الخاصة مقدمة على صلاحيات المجموعة التي ينتمي إليها).
إذن يفضل أن يكون هذا المحدد ضمن التراخيص في كلا الجدولين ( المستخدمين و المجموعات ).
- يمكن أن يوجد هذا الترخيص في حقل خاص في جدول المستخدمين يحتوي على القيمة 1 أو 0 ، إذا كانت 0 فإن هذا المستخدم موقوف.- لكن لا يمكن أن نعتمد عليها دائماً الا في بعض التراخيص الخاصة حتى لا يمتلاً جدولك بأعمدة كثيرة.
نأتي الى النقطة الأخيرة وهي "كيفية التوفيق بين التراخيص من الجدولين":
- لدينا مصفوفتين:
المصفوفة الأولى: خاصة بالمستخدم ( تحمل صلاحياته الخاصة ).
المصفوفوفة الثانية: خاصة بالمجموعة التي ينتمي إليها المستخدم ( تحمل صلاحيات المستخدمين الذين ينتمون لتلك المجموعة ).
وبما أنه قد تختلف الصلاحيات في كلا المصفوفتين إذن:
- علينا أن نجمع المصفوفتين معاً في مصفوفة واحدة.
- أي محدد ( ترخيص ) مكرر - علينا أن نعطي الأولوية للقيمة الموجودة في مصفوفة المستخدم الخاصة.
----------
- نفرض أن هناك شخص ما سجل لديك على الموقع - إذن سيكون له سجل خاص في جدول المستخدمين - مثلاً له ID وله اسم وله بريد إلكتروني وهذا المستخدم ينتمي لمجموعة الأعضاء (GroupID=3) على سبيل المثال..
إذن هذا المستخدم ينتمي لمجموعة الأعضاء، وهذا المستخدم لابد أن يأخذ تراخيص هذه المجموعة، إذن:
1- في محددات المستخدم الخاصة علينا إعطائها قيم إفتراضية ( مثل الشخص الذي يسجل في الموقع يتم إعتباره كـ "عضو" أي نجعل القيمة الإفتراضية للـ GroupID الخاصة به هو ID مجموعة الأعضاء ).
2- مثلاُ: إمكانية دخول لوحة التحكم - تجد هذا المحدد موجود في كلا المصفوفتين ( طبعاً هذا الترخيص تم إبطاله بالنسبة لمجموعة الأعضاء) إذن علينا الإشاره له بقيمة خاصة مثلاً العلامة (؟) في القيمة التي سنضعها في حقل التراخيص الموجودة بحقل المستخدم- التي نعني بها أن هذا الترخيص سيتم أخذه وإيجاد قيمته من المصفوفة الأخرى ( مصفوفة تراخيص المجموعات) - لماذا؟ حتى إذا قمنا بتفعيل هذا الترخيص في مجموعة هذا المستخدم يتم تطبيقه عليه بدون إجراء تعديل على صلاحياته الخاصة.
3- إذا تم التعديل على صلاحيات المستخدم الخاصة (في جدول المستخدمين) فإن أي علامة (?) لأي ترخيص (التي تعني أن هذه القيمة مرتبطة بالترخيص الموجود ضمن تراخيص المجموعات) ستتم إزالتها وبالتالي فإن أي تغيير في ترخيص هذا المحدد في مجموعات المستخدمين لن يطبق على هذا المستخدم.. مثل ماذكرت سابقاً (لو أن هناك مستخدم ينتمي لمجموعة المدراء التي أعطيناها "ترخيص إمكانية الدخول للوحة التحكم" فإنه متاح له الدخول للوحة التحكم، ماذا لو أبطلنا هذه الصلاحية بالنسبة لمجموعة المدراء؟ بالطبع لن يستطبع الدخول للوحة التحكم إلا إذا كانت هذه الصلاحية من ضمن تراخيصه الخاصة وليست نابعة من المجموعة التي ينتمي إليها).
__________________
اللهم وفقني لما تحبه وترضاه...