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.
Mi piacerebbe anche un’opzione di esclusione e forse può essere relativamente semplice: permetteteci solo di aggiungere un gruppo alle impostazioni di sicurezza di una categoria e di deselezionare la casella Vedi.
Al momento, se aggiungo un gruppo alle impostazioni di sicurezza della categoria, posso deselezionare le caselle Crea e Rispondi, ma non la casella Vedi. Se potessi deselezionare la casella Vedi, la logica sembrerebbe poter essere “se l’utente appartiene a qualsiasi gruppo che non ha i permessi Vedi, non permettere all’utente di vedere la categoria”.
Mi fa pensare a come funzionano attualmente i permessi in conflitto: se un utente appartiene al gruppo A e al gruppo B, e il gruppo A può creare argomenti in quella categoria ma il gruppo B non può crearli, l’utente può creare un argomento in quella categoria? In altre parole, quale prevale?
Presumo che attualmente funzioni come “se l’utente appartiene a qualsiasi gruppo che ha il permesso X, allora concedi quel permesso all’utente”, ma non sono sicuro… ho appena testato e sembra essere così.
Le autorizzazioni sono effettivamente cumulative, non esiste un conflitto in tal senso. L’autorizzazione ereditata più alta vince sempre. Posso essere aggiunto a un gruppo che mi permette di vedere una categoria e anche a un altro che mi permette di contribuire.
Perché avresti bisogno di escludere un gruppo a meno che tu non abbia anche esplicitamente concesso l’accesso tramite un’altra appartenenza?
Penso che l’esempio più semplice sarebbe concedere a tutti i permessi di visualizzazione, risposta e creazione e quindi aggiungere il gruppo X e deselezionare visualizzazione, risposta e creazione in modo che tutti possano vedere, rispondere e creare in quella categoria ad eccezione dei membri del gruppo X.
Come potrebbe applicarsi a me attualmente: utilizzo Memberful come provider SSO su Discourse e WordPress e voglio vendere tre pacchetti, due dei più costosi con accesso al forum e quello più basso senza accesso. Tuttavia, penso che potrebbero ancora ottenere l’accesso a causa della sincronizzazione degli account tra SSO e quindi voglio limitare il loro accesso in modo che non possano vedere alcuna categoria e magari possano solo inviarmi messaggi privati. Penso di poterlo fare aggiungendo il gruppo Y e il gruppo Z a tutte le categorie e non a tutti e questo funziona perché non ho molti gruppi, ma penso che se ne avessi molti, deselezionare la casella per Visualizza sarebbe più facile.
Anch’io vorrei poter configurare piccoli gruppi ed escluderli da alcune categorie sul sito, ma permettere loro di vedere altre categorie come fanno i membri a pieno titolo.
Per usare il confronto di Slack sopra, rendi le persone in quel piccolo gruppo “Ospite Multi-Canale: questi account possono accedere solo a canali selezionati”.
In breve, vorrei poter escludere gruppi da singole categorie.
Ragazzi, potete verificare se ha senso, per favore?
Penso di aver trovato un modo per ottenere qualcosa di simile basandomi sulla funzionalità esistente.
Supponiamo che io voglia mantenere tutti gli argomenti taggati come “segreto” non visibili a un certo gruppo.
Non è semplice come modificare le impostazioni del gruppo in modo che tutti gli argomenti taggati come “segreto” siano silenziati per i membri del gruppo?
Allo stesso modo, se voglio mantenere una categoria non visibile a un certo gruppo, non è semplice come modificare le impostazioni del gruppo in modo che tutti gli argomenti di quella categoria siano silenziati per i membri del gruppo? (e installare anche il componente tema Nascondi Categorie Silenziate?)
Inoltre, non riesco a trovare alcuna documentazione che descriva come funziona la funzionalità di silenziamento di Discourse, qualcuno può aiutarmi?
Quanto sono segreti questi argomenti? Quando si silenzia qualcosa per impostazione predefinita (per tutti o per i membri di un gruppo), gli utenti possono comunque modificare le proprie preferenze per riattivarne la visibilità. Inoltre, gli argomenti silenziati sono nascosti negli elenchi degli argomenti, ma non, ad esempio, nei risultati di ricerca.