Discourse Group Sidebar Menus

:information_source: Summary Create custom sidebar menus for selected groups
:eyeglasses: Preview Join this Theme Creator group and then preview here
:hammer_and_wrench: Repository https://github.com/Lillinator/discourse-group-sidebar-menus
:question: Install Guide How to install a theme or theme component
:open_book: New to Discourse Themes? Beginner’s guide to using Discourse Themes

Install this theme component

:woman_technologist:t2: Overview

This Discourse theme component gives forum administrators the ability to create custom sidebar menus that are only accessible to members of selected groups.

Key Features:

  • Group-based menu visibility - Menu sections are only rendered in sidebar for authorized users
  • Object-based configuration - Easy-to-use settings UI for creating menus
  • Multiple sections - Create unlimited menu sections for different groups (within reason)
  • Admin quick-edit link - Pencil icon in menu headers links admins directly to component settings

:briefcase: Some Use Cases

  • Staff-only resources and quick links
  • Category moderator shortcuts
  • Custom group portals (project teams, study groups, book clubs, VIP members)
  • Links to parent or partner website resources

:gear: Settings

Menu Sections (menu_sections)

Opens the object settings editor to configure custom group menu sections.

Section Properties

Property Description
Menu title Title displayed as the sidebar section header
Allowed groups Groups permitted to view this menu section (max: 20 groups per section)
Menu links Collection of links to display in this section (max: 20 links per section)

Link Properties

Property Description
Icon FontAwesome icon name (e.g., circle-info, star, user-group). May need to be added to Admin > All site settings > svg icon subset
Text Display label for the link
URL Link destination - supports both relative paths (/faq, /my/preferences) and absolute URLs (https://example.com)

:wrench: Installation and Configuration

  1. Install the theme component as per Installing a theme or theme component.
  2. Go to the Objects setting editor
  3. Click the + new_menu_section button to set up the first custom menu section
  4. Give the new menu a title in the Menu title field, and then select the groups you want to have access to it.
  5. Click the + new_menu_section to add another section, or Save changes.
Admin configuration screenshots with example set up

Fresh install - go to Objects setting editor.

Example scenario with 2 custom menus and 3 users, one who is an admin:

  • @Catra loves cats and is a member of pink group, which will have access to the Cat Menu :grinning_cat:
  • @HelloKitty likes dogs and is a member of purple group, which will have access to the Dog Menu :dog_face:
  • @Lilly is a member of purple because she owns a dog and dogs are better. However, she is also a forum admin, and admins will have access to the Cat Menu because cats need more supervision :dog_face: :cat_with_wry_smile:

Create a new custom menu - for our example, create Cat menu and add the groups allowed to have access to it - pink and admins. Then click the + menu_link button to set up the links for the new menu.

Add the menu links - 1. Fontawesome icon name, 2. text to display for the link, and 3. the URL, relative or absolute. Click the + menu_link button to add another link to this menu.

Create another custom menu section called Dog menu, give only group purple access and configure the links:

Screenshots of resulting sidebar menu access

User @Catra has the Cat menu! :grinning_cat:

User @HelloKitty has the Dog menu! :dog_face:

Admin user @Lilly has both menus and can edit them! :smiling_cat_with_heart_eyes:

Configuration Example

Menu Title: "Cat Stuff"
Allowed Groups: team-cat
Links:
  - Icon: link
    Text: Cat videos & photos
    URL: /t/cat-videos-and-photos/123
  - Icon: magnifying-glass
    Text: Cat wiki
    URL: https://en.wikipedia.org/wiki/Cat

:light_bulb: Important Notes

Admin Access

Admins must add themselves to groups to see menus configured for those groups. Admin status alone does not grant access to all custom menus. This is intentional! Also, admins who belong to a menu’s allowed groups will see a pencil icon in the section header that links to component settings.

Group Configuration

  • The everyone group is not supported - Use the native sidebar footer UI to create global custom menus for all users, including anonymous visitors.
  • Maximum of 20 groups per menu section. If you need more, create duplicate sections with different group assignments.
  • Users in multiple groups will see all menu sections they have access to.

Testing & Organization

Use test accounts to verify correct access for different group combinations. Keep track of your menu configurations to avoid confusion as complexity grows; an access matrix or similar documentation is recommended for larger forums with many groups.

Security Considerations

This component provides UI-level access control only. It controls menu visibility, not resource access - this component only controls what is rendered in the sidebar, not who can access the actual resources.

Always rely on Discourse’s built-in permission system to secure actual resources:

  • Configure category permissions properly
  • Set topic visibility restrictions
  • Use group-based access controls for content
  • Ensure private resources require authentication

Administrators best practice:
Configure linked category security permissions and group membership separately - for example: a menu link to a private category must have that category’s permissions properly configured. Administrators are responsible for ensuring links to outside resources are appropriately authorized for selected groups.


This was a collaborative project with @Moin - her input, inspiration and feedback were invaluable.

9 Likes

I seem to be getting a 404 on the repo.

EDIT: All good now!

2 Likes

haha try again. forgot to make it public! :laughing:

6 Likes

Fabulous! I’ve been wanting this for some time. I’ve built a nice collection of useful custom sidebar menus for myself–links for moderation, for admins tasks & reference, for Discourse documentation, for external content we frequently reference in the forum, etc. One menu has links for the various periodic meetings that simply uses the tag link, e.g. /tag/comm-mgt-monthly that helps me jump to current and previous agendas and minutes quickly.

I’ve many times wished for a way to export my custom sidebar menu configs so others on my team could import–this is a far superior configuration!

And icons! Yay! AFAIK the only way to do this was to add custom CSS. This new solution is elegant.

And sustainable! All admins will be able to edit the configuration files, so not reliant on me only. Thanks @Lilly and @Moin!

1 Like

Hi @Lilly and @Moin,

Thank you for building this component.

I was using Group sidebar menu sections - deprecated on my self-hosted site and on my latest update was warned that the older theme component had been deprecated and to install this one, instead.

I’ve installed the component and created my custom group menu, but am just not seeing how to move the group menu. (I must be looking right past something obvious. :see_no_evil_monkey:) In your screenshots, your Cat Menu and Dog Menu are on the sidebar navigation above the Topics section, but my custom group menu is appearing at the very bottom of my sidebar navigation. How do I move it up above Topics?

1 Like

It’s not obvious. Lilly used Discourse Sidebar Menu Reorder to put cat-menu at the top

2 Likes

Thank you so much! That was very easy to configure.

2 Likes