- Модуль: sender
- Путь к файлу: ~/bitrix/modules/sender/lib/security/role/manager.php
- Класс: BitrixSenderSecurityRoleManager
- Вызов: Manager::installRoles
static function installRoles()
{
$roleRow = RoleTable::getRow([]);
if($roleRow)
{
return;
}
$defaultRoles = array(
'ADMIN' => array(
'NAME' => Loc::getMessage('SENDER_SECURITY_ROLE_MANAGER_INSTALLER_ADMIN'),
'PERMISSIONS' => array(
Permission::ENTITY_AD => array(
Permission::ACTION_VIEW => Permission::PERMISSION_ANY,
Permission::ACTION_MODIFY => Permission::PERMISSION_ANY,
),
Permission::ENTITY_RC => array(
Permission::ACTION_VIEW => Permission::PERMISSION_ANY,
Permission::ACTION_MODIFY => Permission::PERMISSION_ANY,
),
Permission::ENTITY_LETTER => array(
Permission::ACTION_VIEW => Permission::PERMISSION_ANY,
Permission::ACTION_MODIFY => Permission::PERMISSION_ANY,
),
Permission::ENTITY_SEGMENT => array(
Permission::ACTION_VIEW => Permission::PERMISSION_ANY,
Permission::ACTION_MODIFY => Permission::PERMISSION_ANY,
),
Permission::ENTITY_BLACKLIST => array(
Permission::ACTION_VIEW => Permission::PERMISSION_ANY,
Permission::ACTION_MODIFY => Permission::PERMISSION_ANY,
),
Permission::ENTITY_SETTINGS => array(
Permission::ACTION_MODIFY => Permission::PERMISSION_ANY,
),
)
),
'MANAGER' => array(
'NAME' => Loc::getMessage('SENDER_SECURITY_ROLE_MANAGER_INSTALLER_MANAGER'),
'PERMISSIONS' => array(
Permission::ENTITY_AD => array(
Permission::ACTION_VIEW => Permission::PERMISSION_ANY,
Permission::ACTION_MODIFY => Permission::PERMISSION_ANY,
),
Permission::ENTITY_RC => array(
Permission::ACTION_VIEW => Permission::PERMISSION_ANY,
Permission::ACTION_MODIFY => Permission::PERMISSION_ANY,
),
Permission::ENTITY_LETTER => array(
Permission::ACTION_VIEW => Permission::PERMISSION_ANY,
Permission::ACTION_MODIFY => Permission::PERMISSION_ANY,
),
Permission::ENTITY_SEGMENT => array(
Permission::ACTION_VIEW => Permission::PERMISSION_ANY,
Permission::ACTION_MODIFY => Permission::PERMISSION_NONE,
),
Permission::ENTITY_BLACKLIST => array(
Permission::ACTION_VIEW => Permission::PERMISSION_ANY,
Permission::ACTION_MODIFY => Permission::PERMISSION_ANY,
),
Permission::ENTITY_SETTINGS => array(
Permission::ACTION_MODIFY => Permission::PERMISSION_NONE,
),
)
)
);
$roleIds = array();
foreach ($defaultRoles as $roleCode => $role)
{
$addResult = RoleTable::add(array(
'NAME' => $role['NAME'],
'XML_ID' => $roleCode,
));
$roleId = $addResult->getId();
if ($roleId)
{
$roleIds[$roleCode] = $roleId;
Manager::setRolePermissions($roleId, [], $role['PERMISSIONS']);
}
}
if (isset($roleIds['ADMIN']))
{
ModelRoleAccessTable::add(array(
'ROLE_ID' => $roleIds['ADMIN'],
'ACCESS_CODE' => 'G1'
));
}
if (isset($roleIds['MANAGER']) && Loader::includeModule('intranet'))
{
$departmentTree = CIntranetUtils::getDeparmentsTree();
$rootDepartment = (int)$departmentTree[0][0];
if ($rootDepartment > 0)
{
ModelRoleAccessTable::add(array(
'ROLE_ID' => $roleIds['MANAGER'],
'ACCESS_CODE' => 'DR'.$rootDepartment
));
}
}
}