Показать пользовательский HTML в заголовке для участников конкретной группы

Привет,

Я искал что-то подобное, но с исключением определённых групп, поэтому решил попробовать ChatGPT, и вот что он ответил:

Чтобы создать HTML-тему в Discourse, которая запускает скрипт с исключением определённых групп, вам нужно использовать возможности кастомизации тем Discourse вместе с JavaScript для обработки исключений групп. Discourse предоставляет api.getCurrentUser() для получения данных пользователя, включая его группы, что может быть полезно для условного запуска вашего скрипта.

Вот пример того, как это можно реализовать в секции </head> вашей темы или компонента:

<script type="text/discourse-plugin" version="0.8">
    api.onPageChange(() => {
        // Получаем данные текущего пользователя
        const currentUser = api.getCurrentUser();

        if (currentUser) {
            // Список названий групп, которые нужно исключить из выполнения скрипта
            const excludedGroups = ['group1', 'group2'];

            // Получаем группы пользователя
            const userGroups = currentUser.groups.map(group => group.name);

            // Проверяем, состоит ли пользователь в какой-либо из исключённых групп
            const isExcluded = excludedGroups.some(group => userGroups.includes(group));

            if (!isExcluded) {
                // Здесь ваш собственный код скрипта
                console.log('Скрипт выполнен для этого пользователя.');
                // Пример: запуск любой пользовательской логики для пользователей, не входящих в исключённые группы
                // customScriptFunction();
            } else {
                console.log('Пользователь состоит в исключённой группе, скрипт не выполнен.');
            }
        }
    });
</script>

Пояснение:

  1. api.onPageChange(): Запускает скрипт при каждом изменении страницы.
  2. api.getCurrentUser(): Получает данные текущего вошедшего пользователя.
  3. excludedGroups: Список групп, которые нужно исключить.
  4. userGroups.includes(group): Проверяет, состоит ли пользователь в какой-либо из исключённых групп.
  5. Условное выполнение скрипта: Скрипт будет выполнен только если пользователь не входит ни в одну из исключённых групп.

Вы можете заменить customScriptFunction(); на любой скрипт, который вам нужно запустить. Дайте знать, если потребуются дополнительные изменения!

Я просто в шоке от этого :exploding_head:. Я ещё не пробовал, но правильный ли этот код от ChatGPT?