Ban members from certain categories?

أود رؤية هذا أيضًا. لدينا أيضًا وضع مماثل.

١. لدينا بضع فئات مقيدة بمجموعات معينة.
٢. ولكن نحتاج أيضًا إلى أن نكون قادرين على استبعاد أشخاص معينين من هذه الفئات.

إن امتلاك عضوية فئة سلبية سيعمل. ولكن أعتقد أن الحل الأكثر قوة ومرونة سيكون وجود مجموعات تلقائية محددة من قبل المستخدم (مثل الموظفين اليوم). يمكن لهذه المجموعات أن تدعم عمليات المجموعة الأساسية لتحديد العضوية.

على سبيل المثال، بهذه الميزة، لا يحتاج الموظفون إلى أن يكونوا حالة خاصة ولكن يمكن أن يكونوا ببساطة admin + moderators. حقيقة أن مجموعة تلقائية هذه تم إنشاؤها هي بالفعل تلميح قوي بأن هذه الميزة مفيدة ويجب توسيعها إلى ميزة عامة بدلاً من كونها ميزة مدمجة.

بهذا يمكنك تنفيذ الاستبعاد السلبي عن طريق وجود مجموعة HasAccess = AccessGroup - BannedGroup.

ستكون هذه المجموعات التلقائية مفيدة جدًا لحالات الاستخدام الأخرى أيضًا. على سبيل المثال:

زيادة الرتب

لدينا حاليًا بضعة منتديات مغلقة تشمل في الأساس دوائر أصغر من الأشخاص. شيء مثل:

  • Admin = Admin
  • Moderators = Admin + Moderators
  • BetaTeam = Admin + Moderators + Beta
  • Trusted = Admin + Moderators + Beta + Trusted

إن الحاجة إلى تطبيق القائمة الصحيحة من المجموعات على كل فئة أمر شاق وعرضة للخطأ. لقد واجهنا العديد من الحالات التي كانت فيها مجموعة واحدة مفقودة من فئة كان ينبغي أن يتمتعوا بالوصول إليها. إن القدرة على تعريف مجموعات مثل هذه ستجعل هذا أسهل بكثير في الإدارة:

  • ModeratorsOrHigher = Admin + Moderators (هذا مدمج كمجموعة تلقائية staff)
  • BetaOrHigher = ModeratorsOrHigher + Beta
  • TrustedOrHigher = BetaOrHigher + Trusted

المجموعات المشتركة

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