Can no longer create global banners from restricted categories

Hey all, just noticed today that we can no longer do the following for restricted categories:

Wrench > Pin Topic > Make Banner Topic

How is everyone else managing their templates for banners they reuse?

I’m not understanding why we would want the information used in banners floating around cluttering up public categories, but maybe I’m missing something.

I would love to hear everyone else’s workflow.

Here is the related PR for reference: DEV: Gate read-restricted banner topics by janzenisaac · Pull Request #38496 · discourse/discourse · GitHub

When functionality like this changes or gets removed, it’s usually due to security or access-control considerations. In this case, banner topics are now gated so that topics in read-restricted categories can’t be used as banners anymore.

That said, we’re currently discussing internally whether there are better workflows or improvement that could help with use cases like yours.

In the meantime, one possible workaround, if the goal is simply to avoid banner topics being visible in normal topic lists, is to create the banner topic as Unlisted from the start in a public category instead of a private one. Unlisted topics won’t appear in topic lists or category views for regular users, but they can still be accessed via direct link and used programmatically:

To keep things organized, you could also add a tag like #banner so it’s easy to locate those topics later.

From there, you can use the Discourse Automation plugin and run the “Make Banner Topic” script, referencing the ID of the unlisted topic. That will convert it into a banner while keeping it effectively hidden from normal browsing.

This modification strikes me as somewhat peculiar.

Firstly, the staff members who possess the authority to modify banners are the same individuals who have access to this read-restricted topic. When they choose to designate a topic as a banner, it is reasonable to assume that they intentionally wish to make its contents public, so I do not think this would be a security issue.

Secondly, in practice, staff members on our site are accustomed to drafting announcements within a read-restricted topic before setting it as a banner.

The security issue lies in that banner content was being made available to everyone, and not just admins/mods. I don’t agree with your assumption that admins are aware that all read-restricted banners would be made public.

However, I do see the use case and the desire to not muddy public categories :slight_smile:

@dax thanks for the workaround in the meantime, I’ll try this for now, although I do miss having a dedicated staff drafting zone.

I tried the method described above, but the ‘Pin topic’ option disappears when you unlist it.

For that reason i said to use the Automation plugin for now

@Discoursenaut now you should see the Pin Topic option even for Unlisted topics so you can skip the Automation step.

Can you check on your site?

Stunning, that is perfect!

Can y’all consider updating the instructions here ( under Dismissable Banner) that it needs to be in a public category and unlisting is suggested.

Added those details, thanks for mentioning it!

I have a similar concern that I expressed here: I just upgraded to the latest tag, and lost banner topic!, and I really hope that @dax’s workaround will keep working.

In my case, I had chosen the following workflow:

  1. Create a new topic in #staff with a #banner tag
  2. Prepare the banner in the first post
  3. Eventually use replies to discuss banner scheduling and variants
  4. Make topic a banner.

But with the new approach, I cannot have the staff discussion about banners. :person_shrugging:

“Staff” group should still be able to see and reply in unlisted topics I think.

The problem isn’t that staff won’t find the topic but that everyone can read unlisted topics. We can both read this hidden topic without being staff: Configure API Keys for Google Gemini

Yeah but they would need the link to it to be able to find it in the first place.

Users can get that, for example, by watching the category or because someone links to their post, quotes, or @mentions them. Every notification results in the user having the link. Also, you can simply try IDs lower than the one of the latest topic created. Unlisted topics are not a place for stuff users shouldn’t see.

Indeed, and I have devised another solution anyway:

FWIW, I recently resorted to this theme component for banners across my community because it doesn’t require a dedicated topic.