/ Битрикс24: добавление дисковой квоты новым пользователям

Битрикс24: добавление дисковой квоты новым пользователям

22 дек 2024
Дмитрий М.
420

Для начала, в модуле Диск нужно включить настройку позволяющую устанавливать квоту дискам сотрудников ( Настройки - Настройки модулей - Диск )

Screenshot_619.jpg

Теперь при помощи методов API можно устанавливать дисковые квоты для сотрудников.

Обработчик события - добавление нового пользователя.

Если вы решили ввести дисковые квоты, тогда следует задуматься о том, что новым сотрудникам должна по умолчанию устанавливаться выбранный вами размер квоты.

Реализуем установку квоты по умолчанию при помощи использования события onAfterUserAdd, которое вызывается после завершения процесса добавления нового пользователя.

Для реализации обработчика события создадим класс UserAddHandler

use \Bitrix\Main\EventManager;
use \Bitrix\Main\Loader;
use \Bitrix\Disk\Driver;

class UserAddHandler
{
    public static function onAfterUserAdd(&$fields)
    {
        if (isset($fields['ID']) && intval($fields['ID']) > 0) {
            $userId = intval($fields['ID']);
            self::setDiskQuota($userId, 100 * 1024 * 1024); // 100 MB in bytes
        }
    }

    private static function setDiskQuota($userId, $quotaSize)
    {
        if (!Loader::includeModule('disk')) {
            return;
        }

        $storage = Driver::getInstance()->getStorageByUserId($userId);
        $storage->setSizeLimit($quotaSize);
    }
}
        

Подключите класс в init.php вашего сайта. Обычно init.php находится в папке /bitrix/php_interface/ или /local/php_interface/

require_once($_SERVER['DOCUMENT_ROOT'] . '/path/to/user_add_handler.php');
        

Так же нужно добавить в init.php функцию обработки события

// Установка дисковой квоты в 100 Мб для новых пользователей
\Bitrix\Main\EventManager::getInstance()->addEventHandler('main', 'onAfterUserAdd', ['UserAddHandler','onAfterUserAdd'], false, 9999);
        

Обязательно в обработчике события должен быть указан последний параметр - сортировка - который отвечает за очерёдность вызова обработчиков событий в системе. Установка квоты должна происходить после того, как для пользователя будет инициирован диск. Поэтому устанавливаем сортировке значении 9999, чтобы наша обработка события вызывалась гарантирована последней.

Статья была полезна? Поблагодарите автора.

Оглавление
    Самые читаемые
    #1С Битрикс, #Bitrix CMS, #.htaccess, #настройка редиректов
    4 авг 2019
    #bitrix:news, #сортировка, #фильтрация, #bitrix:catalog, #catalog.section, #news.list
    16 дек 2020
    #Хлебные крошки, #1С Битрикс, #Bitrix CMS, #bitrix:breadcrumbs, #component_epilog, #кэширование
    1 окт 2018
    #bitrix, #свойства элементов, #обработчик событий, #OnBeforeIBlockElementUpdate, #OnIBlockElementSetPropertyValues
    21 июл 2020
    #Bitrix CMS, #breadcrumb, #bitrix:breadcrumbs, #хлебные крошки, #настройка
    13 фев 2019
    #ресайз изображений, #1С Битрикс, #Bitrix CMS
    3 мар 2019
    #bitrix, #robots.txt, #sitemap.xml, #поддомены, #мультисайтовость
    16 окт 2018
    #bitrix, #bitrix:catalog.section, #скидки, #товары со скидкой, #страница скидок, #страница со скидками
    4 окт 2018
    #bitrix, #пользовательские свойства, #тип свойств, #привязка к элементам
    27 ноя 2019