- Модуль: dav
- Путь к файлу: ~/bitrix/modules/dav/classes/general/dav.php
- Класс: CDav
- Вызов: CDav::PackPrivileges
static function PackPrivileges($arPrivileges)
{
static $arPrivilegesMap = array('read' => 1, 'write-properties' => 2, 'write-content' => 4, 'unlock' => 8, 'read-acl' => 16,
'read-current-user-privilege-set' => 32, 'bind' => 64, 'unbind' => 128, 'write-acl' => 256, 'read-free-busy' => 512,
'schedule-deliver-invite' => 1024, 'schedule-deliver-reply' => 2048, 'schedule-query-freebusy' => 4096,
'schedule-send-invite' => 8192, 'schedule-send-reply' => 16384, 'schedule-send-freebusy' => 32768,
'write' => 198 /* 2 + 4 + 64 + 128 */, 'schedule-deliver' => 7168 /* 1024 + 2048 + 4096 */,
'schedule-send' => 57344 /* 8192 + 16384 + 32768 */, 'all' => GW_MAXIMUM_PRIVILEGES);
if (!is_array($arPrivileges))
$arPrivileges = array($arPrivileges);
$result = 0;
foreach ($arPrivileges as $privilege)
{
$privilege = trim(mb_strtolower(preg_replace('/^.*:/', '', $privilege)));
if (array_key_exists($privilege, $arPrivilegesMap))
$result |= $arPrivilegesMap[$privilege];
}
if (($result & GW_MAXIMUM_PRIVILEGES) >= GW_MAXIMUM_PRIVILEGES)
$result = pow(2, 24) - 1;
return $result;
}