I would like to support this. My use case - I have a group of “limited” users; I want them to be able to read most categories, but write only in one, let’s call it “starting cat.”.
I can of course use existing solution (and trust levels of course), but if I want to have more fine-grained permission system, it gets hectic.
Instead of setting up permissions like this:
display: everyone
post: everyone NOT greenhorns
I have to do something like this:
display: everyone
post: Group 1
Group 2
(...and basically each and every other group...)
reply: Group a
Group b
(...and once again...)
@robmc, looks like Jeff recategorized this already. Unless I’ve misread this, your request is the same as mine (linked above, long before I joined the Discourse team). Do you mind if the topics are combined, or do you feel yours is different?
Well, our use cases are similar, but our current proposed solutions look a little different
I don’t mind combining them at all, but I think that your original proposal was to have a single category for putting members into that would stop them being in ‘everyone’ but I would prefer to have logic in the security that allowed us to use “IS NOT” (or can’t / exclude) in the same way we use “IS” (or Can) as I think this would give more flexibility
They are similar issues, but not quite the same and it is possible that a single technical solution would address both, but I’m not sure. Happy to put them together to explore it though
I’m not precious … just wanting to help make this even better for everyone
So my usecase at the time was a single category that I needed to restrict access to, but the solution is the same as you suggested: an “exclude” or “not” security permission for categories.
Having Add+Subtract moves the system into a whole range of potential conflicts requiring resolution. At the least, the order of putting in permissions will now be significant, and so there will necessitate a reorder function to move things up/down.
Otherwise, there is no way to resolve potential conflicts when a person:
is in more than one group
one group is permitted access
another group is denied access
EDIT: Or you can say Add always trumps Subtract, or vice versa. Nevertheless, it makes things very hard to understand.
Although I can understand the pain you’re going through in order to request this… I have tons and tons of groups and each category’s permissions list is like 15 long, just to do what you’re looking to do – that is, to exclude a particular group from access while opening to most others.
Since all sites are currently like yours, it might be that the solution is to have two steps / sections … the first is the INCLUSION (which is the current context, so even if the change is made nothing is affected) where you build up a total population to view this, then a second step below would be the EXCLUSION which would remove a portion of those that matched certain criteria.
There is also a need for intersection, meaning that the permission is only for users with two or more groups set.
For example, Sales & USA ==> any user having both the group Sales and USA. Then this combo should have access to USA Sales Leads category. In other words, the group is the “intersection” of a number of groups. Currently, the permission system works on the “union” of listed groups.
This will solve neatly the common headaches of setting up permission with sub-categories (where in many cases, the users permitted into the sub-categories will only be among the ones permitted into the parent category). It is necessary because, in Discourse, sub-categories do NOT inherit permissions.
أود أيضًا خيار استبعاد، وربما يمكن أن يكون بسيطًا نسبيًا: فقط اسمحوا لنا بإضافة مجموعة إلى إعدادات أمان فئة والسماح لنا بإلغاء تحديد مربع “رؤية”.
في الوقت الحالي، إذا أضفت مجموعة إلى إعدادات أمان الفئة، يمكنني إلغاء تحديد مربعي “إنشاء” و “رد” ولكن ليس مربع “رؤية”. إذا كان بإمكاني إلغاء تحديد مربع “رؤية”، فتبدو المنطقية كالتالي: “إذا كان المستخدم ينتمي إلى أي مجموعة لا تملك أذونات رؤية، فلا تسمح للمستخدم برؤية الفئة”.
يجعلني أتساءل كيف تعمل الأذونات المتضاربة حاليًا: إذا كان المستخدم ينتمي إلى المجموعة أ والمجموعة ب، والمجموعة أ يمكنها إنشاء مواضيع في تلك الفئة ولكن المجموعة ب لا يمكنها إنشاء مواضيع، فهل يمكن للمستخدم إنشاء موضوع في تلك الفئة؟ بعبارة أخرى، أيهما له الأسبقية؟
أفترض أنه يعمل حاليًا كما في “إذا كان المستخدم ينتمي إلى أي مجموعة لديها إذن X، فامنح هذا الإذن للمستخدم” ولكن لست متأكدًا … لقد اختبرت للتو ويبدو أن هذه هي الحالة.
الأذونات تراكمية بشكل فعال، لا يوجد شيء اسمه تعارض بهذا المعنى. أعلى إذن موروث يفوز دائمًا. يمكن إضافتي إلى مجموعة واحدة تسمح لي برؤية فئة، وأخرى تسمح لي بالمساهمة.
لماذا ستحتاج إلى استبعاد مجموعة ما لم تكن قد منحتها وصولاً صريحًا من خلال عضوية أخرى؟
أعتقد أن أبسط مثال سيكون منح أذونات المشاهدة والرد والإنشاء للجميع ثم إضافة المجموعة X وإلغاء تحديد المشاهدة والرد والإنشاء بحيث يمكن للجميع رؤية وإنشاء الردود في تلك الفئة باستثناء أعضاء المجموعة X.
كيف قد ينطبق ذلك علي حاليًا: أستخدم Memberful كموفر تسجيل دخول موحد (SSO) على Discourse و WordPress وأريد بيع ثلاث باقات، اثنتان أغلى ثمناً مع الوصول إلى المنتدى والأدنى بدون وصول. ومع ذلك، أعتقد أنهم قد لا يزالون يحصلون على وصول بسبب مزامنة الحسابات عبر تسجيل الدخول الموحد، لذا أريد الحد من وصولهم حتى لا يتمكنوا من رؤية أي فئات وربما يمكنهم فقط إرسال رسائل خاصة لي. أعتقد أنني أستطيع فعل ذلك عن طريق إضافة المجموعة Y والمجموعة Z إلى جميع الفئات وليس الجميع وهذا يعمل لأنني لا أملك العديد من المجموعات، ولكن أعتقد أنه إذا كان لدي الكثير، فسيكون إلغاء تحديد المربع للمشاهدة أسهل.
يا شباب - هل يمكنكم التحقق من هذا من فضلكم؟
أعتقد أنني ربما فكرت في طريقة لتحقيق شيء كهذا بناءً على الوظائف الحالية.
لنفترض أنني أريد الاحتفاظ بأي مواضيع تم تمييزها بـ “سرية” غير مرئية لمجموعة معينة.
أليس الأمر بسيطًا مثل تغيير إعدادات المجموعة بحيث يتم كتم صوت المواضيع التي تحمل علامة “سرية” لأعضاء المجموعة؟
وبالمثل، إذا كنت أرغب في الاحتفاظ بفئة غير مرئية لمجموعة معينة، فهل الأمر ليس بسيطًا مثل تغيير إعدادات المجموعة بحيث يتم كتم صوت أي مواضيع في تلك الفئة لأعضاء المجموعة؟ (وأيضًا تثبيت مكون سمة إخفاء الفئات المكتومة؟)
أيضًا - لا يمكنني العثور على أي وثائق تصف كيفية عمل وظيفة كتم الصوت في Discourse - هل يمكن لأي شخص المساعدة؟
ما مدى سرية هذه المواضيع؟ عندما تقوم بكتم شيء ما افتراضيًا (للجميع أو لأعضاء مجموعة)، لا يزال بإمكان المستخدمين تعديل تفضيلاتهم لإلغاء كتمه. أيضًا، المواضيع المكتومة مخفية في قوائم المواضيع، ولكن ليس، على سبيل المثال، في نتائج البحث.