+7 495 008 8452 пн.-пт. 10:00 – 17:00
Если у вас возникли какие либо вопросы которые вы не смогли решить по нашим публикациям самостоятельно,
то ждем ваше обращение в нашей службе тех поддержки.


Убираем лишнее из ЖЛ

Живая лента — действительно очень клёвая штука для отслеживания рабочей активности. Но иногда приходят они — Обновления. И что-то начинает работать не так, как хотелось бы:-) В этот раз, например, пришло нововведение в модуле соцсетей (12.5.2*) с изменённой логикой вывода уведомлений задач в живую ленту. Если ранее записи попадали только в ленту пользователей, причастных к этой задаче, то теперь список получателей расширен в соответствии с настройкой группы:


У нас, например, любой сотрудник по умолчанию может посмотреть задачи любой открытой группы без вступления в неё. В итоге получилось, что в ЖЛ стали попадать совершенно чужие задачи из всех групп. С одной стороны, вполне логично, с другой — неудобно. На помощь, как всегда, пришло событие — socialnetwork.OnBeforeSocNetLogRightsAdd. Оно позволяет убрать «лишние» права с уведомлений и вернуть всё как было ранее. Конкретно наш кейс решается следующим обработчиком:
static public function disableNotificationForAllUsers($logId, $groupCode)
{
    static $arLogEntry;

    if (empty($logId)) {
        return;
    }

    if ($arLogEntry['ID'] != $logId) {
        $arLogEntry = CSocNetLog::GetByID($logId);
    }

    // Проверка типа записи - нужна задача из группы
    if (!($arLogEntry['EVENT_ID'] == 'tasks' && $arLogEntry['ENTITY_TYPE'] == 'G')) {
        return;
    }

    // "Авторизованные пользователи"
    if ($groupCode == 'AU') {
        return false;
    }
}

После создания любой записи в ЖЛ на неё назначаются права, которые и можно ограничить в событии, возвращая false в нужные моменты (обработчик вызывается для каждого права доступа отдельно). Таким же образом можно не выводить новые статьи в открытых вики групп для всех пользователей, убирать системные уведомления (например, «пользователь вступил в группу» — кейс из жизни, у клиента ими порой вся страница забита) и т.п.

* версия, конечно, не такая и свежая — ещё от конца апреля, но мы не ставим сразу каждый апдейт, если всё хорошо работает.

Назад в раздел

Подписаться на новые материалы раздела:












CAPTCHA