Feature proposal: Customizations based on primary group membership, a.k.a. tenancy 'lite'


(Ted Strauss) #1

A user on my forum wants their own separate forum for their group (within the larger institution) so that the experience is customized to their content. I can’t support multiple forums and it defeats the purpose of Discourse, but it gave me this idea for a way to implement pseudo-tenancy. Maybe this already exists in some form?

Feature description

In the Group > Manage interface add a new section called Customize. Here are the settings to include there.

  • [checkbox] Display a different UI theme for users who are primary members of this group.
    • [select] Select which theme to display. (Pull all available themes from admin > customize)
    • [file] Display a different site logo.
    • [group multi-select] Exception. Primary group members who are also members of this group, e.g. admin, are exempted from this setting.
  • [category multi-select] Hide these topic categories for primary members of this group. They will never see those topics.
    • [group multi-select] Exception. Primary group members who are also members of this group, e.g. admin, are exempted from this setting.
  • [category select] The home page (after logging in) for primary group members will be this category.

(Jay Pfaffman) #2

Why not just let them select the theme in their profile? That’d solve the look stuff without changes.

There are some plugins that you can use to watch categories for group members.


(Ted Strauss) #3

That would work sure. But after reading your reply I updated the original post, realising that the feature is about more than just the theme, it’s perhaps more about filtering content.


(Jay Pfaffman) #4

Something like GitHub - amical/discourse-watch-category: Watches a category for all the users in a particular group will do that. (You’ll need to customize it for your site; there is no UX for the plugin).

That’s already user selectable too, though I think with the categories on/off you might not need it. You could probably add changing that to the plugin as well.

If you’re hosted, you’d need to be on a plan that allows such plugins.


(Stephen) #5

Why not Multisite? Running a separate discourse database and front end within the same footprint? It’s going to be much easier to support a partition at that level than it is to embark on any of the above.

When you get to the point that you’re separating the theme, front end and content you’re effectively talking about separate Discourse instances. That’s pretty much why multisite exists. The added benefit is that they can make use of different site settings and sign-on.

New plugins and code changes aren’t just adding stuff to accommodate a new forum with the above, you’re adding complexity and a big risk of blowback onto your existing customers.


(Jay Pfaffman) #6

I was going to suggest that too, but apparently got distracted. :slight_smile:

You can also set one Discourse as the SSO master and the other as a slave, so there is still just one user database.