New category permission - "cannot see"/"exclude"

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...)
「いいね!」 3

@hawk this post was moved into community when someone misunderstood my request

I think this appears to have some support enough to justify it moving to either support or possibly feature - do you agree?

「いいね!」 1

@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?

「いいね!」 2

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

「いいね!」 1

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.

「いいね!」 2

SOLD!

:slight_smile:

Happy to join forces in that case

「いいね!」 2

I wiki-ed the OP. Feel free to add/edit anything you’d like.

「いいね!」 1

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.

「いいね!」 2

Indeed, the order will matter

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.

「いいね!」 5

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.

「いいね!」 2

私も除外オプションがあれば嬉しいです。おそらく比較的簡単な方法で実現できるでしょう。カテゴリのセキュリティ設定にグループを追加し、「表示」のチェックを外せるようにするのです。

現在、カテゴリのセキュリティ設定にグループを追加すると、「作成」と「返信」のチェックは外せますが、「表示」のチェックは外せません。もし「表示」のチェックを外せるようになれば、「ユーザーがいずれかのグループに属していて、そのグループが表示権限を持っていない場合、そのユーザーにカテゴリを表示させない」というロジックが機能するはずです。

そうなると、現在、権限の競合がどのように機能するのか疑問に思います。ユーザーがグループAとグループBに属していて、グループAはそのカテゴリでトピックを作成できますが、グループBは作成できません。その場合、ユーザーはそのカテゴリでトピックを作成できるのでしょうか?言い換えれば、どちらが優先されるのでしょうか?

現在、「ユーザーがいずれかのグループにX権限を持っている場合、その権限をユーザーに付与する」という形で機能していると推測しますが、確信はありません。テストしたところ、そのようです。

「いいね!」 1

権限は実質的に累積的であり、その意味での競合というものはありません。最も高い継承された権限が常に優先されます。カテゴリを表示できるグループと、貢献できる別のグループに追加される可能性があります。

別のメンバーシップを通じて明示的にアクセス権を付与した場合を除き、グループを除外する必要があるのはなぜですか?

最も簡単な例は、全員に表示、返信、作成の権限を与え、次にグループXを追加して表示、返信、作成のチェックを外すことです。これにより、グループXのメンバーを除く全員がそのカテゴリで表示、返信、作成できるようになります。

私に現在どのように適用されるか:DiscourseとWordPressでMemberfulをSSOプロバイダーとして使用しており、3つのパッケージを販売したいと考えています。より高価な2つのパッケージはフォーラムへのアクセス権を付与し、最も安価なパッケージはアクセス権を付与しません。しかし、SSO経由でアカウントを同期しているため、まだアクセス権が付与される可能性があり、アクセスを制限して、カテゴリを一切表示できず、PMのみを送信できるようにしたいと考えています。すべてのカテゴリにグループYとグループZを追加し、全員を追加しないことで実現できると思いますが、グループが多い場合は、[表示]のチェックを外す方が簡単だと思います。

「いいね!」 1

私も、小規模グループを設定し、サイトの一部のカテゴリから除外できるようにしたいと考えています。ただし、他のカテゴリは通常のメンバーと同じように閲覧できるようにしたいです。

上記のSlackの比較を使用して、その小規模グループのメンバーを「マルチチャンネルゲスト:これらのアカウントは選択されたチャンネルのみにアクセスできます」としたいです。

要するに、個々のカテゴリからグループを除外できるようにしたいのです。

「いいね!」 1

皆さん、この内容を確認していただけますか?

既存の機能に基づいて、このようなことを達成する方法を思いついたかもしれません。

例えば、「secret」というタグが付いたトピックを特定のグループに表示させたくないとします。

グループの設定を変更して、グループメンバーに対して「secret」というタグが付いたトピックをミュートするようにするだけで、これを行うことはできませんか?

同様に、特定のグループにカテゴリを表示させたくない場合、グループの設定を変更して、そのカテゴリ内のトピックをグループメンバーに対してミュートするようにするだけで、これを行うことはできませんか?(また、Hide Muted Categories というテーマコンポーネントをインストールすることも必要ですか?)

また、Discourse のミュート機能がどのように機能するかを説明するドキュメントが見つかりません。どなたか助けていただけますか?

それらのトピックはどのくらいシークレットなのですか?デフォルトで何かをミュートした場合(全員またはグループのメンバーに対して)、ユーザーは設定を編集してミュート解除することができます。また、ミュートされたトピックはトピックリストには表示されませんが、検索結果などには表示されます。

「いいね!」 2

ああ、わかりました、それではうまくいきませんね:frowning: