Привет, @jrgong!
Как вы, вероятно, хорошо знаете, это несложно реализовать с помощью плагина.
В целом, вы можете создать список сотрудников (по электронной почте, имени пользователя и т. д.) в виде глобальной настройки, аналогично тому, как Discourse определяет разработчиков по адресу электронной почты.
Затем вы можете использовать эту GlobalSetting в некоторых патчах, чтобы разрешить два интересующих вас сценария.
Первый из ваших сценариев: кастомизация тем как сотрудник, по моему мнению, относительно просто реализовать через monkey patch ядра.
Что касается второго сценария, то при небольших усилиях вы можете форкнуть этот плагин и переработать ограничение доступа к маршрутам в нём (а также внести любые другие необходимые изменения):
Поскольку ограничение для плагина рекламы встроено в сам плагин, хорошей идеей будет фактически изменить этот код, чтобы разрешить доступ вашим «разрешённым» сотрудникам к тем частям плагина, к которым вы хотите предоставить доступ, основываясь на вашей собственной модели RBAC.
Иными словами, оба ваших требования выполнимы, если вы готовы написать код; или, конечно, вы можете попросить одного из опытных профессиональных разработчиков плагинов Discourse помочь вам в канале Marketplace.