8use Bitrix\Main\Entity\AddResult;
13use Bitrix\Bitrix24\Feature;
15Loc::loadMessages(__FILE__);
34 Application::getInstance()->getTaggedCache()->clearByTag(
'bitrix:menu');
44 if(!Loader::includeModule(
'bitrix24'))
49 return Feature::isFeatureEnabled(
'sender_security');
59 return Loc::getMessage(
'SENDER_SECURITY_ROLE_MANAGER_TRIAL_TEXT_NEW');
70 return RoleTable::getList($parameters);
81 return Model\Role\AccessTable::getList($parameters);
92 self::clearMenuCache();
94 foreach ($list as $item)
97 'ROLE_ID' => $item[
'ROLE_ID'],
98 'ACCESS_CODE' => $item[
'ACCESS_CODE']
119 if(isset(self::$userRoles[
$userId]))
120 return self::$userRoles[
$userId];
123 $userAccessCodes = \CAccess::getUserCodesArray(
$userId);
125 if(!is_array($userAccessCodes) ||
count($userAccessCodes) === 0)
128 $cursor = Model\Role\AccessTable::getList([
130 '=ACCESS_CODE' => $userAccessCodes
134 while($row = $cursor->fetch())
152 $list = Model\Role\PermissionTable::getList([
'filter' => [
'=ROLE_ID' => $roleId]]);
153 foreach ($list as $row)
155 $result[$row[
'ENTITY']][$row[
'ACTION']] = $row[
'PERMISSION'];
172 $roleId = (int) $roleId;
173 if ($roleId <= 0 && empty($roleFields))
178 if(RoleTable::getRowById($roleId))
180 if (!empty($roleFields))
182 $result = RoleTable::update($roleId, $roleFields);
191 $result = RoleTable::add($roleFields);
202 foreach ($normalizedPermissions as
$entity => $actions)
204 foreach ($actions as
$action => $permission)
207 'ROLE_ID' => $roleId,
210 'PERMISSION' => $permission
219 self::clearMenuCache();
235 RoleTable::delete($roleId);
236 self::clearMenuCache();
246 self::installRoles();
257 $roleRow = RoleTable::getRow([]);
264 $defaultRoles =
array(
266 'NAME' => Loc::getMessage(
'SENDER_SECURITY_ROLE_MANAGER_INSTALLER_ADMIN'),
267 'PERMISSIONS' =>
array(
294 'NAME' => Loc::getMessage(
'SENDER_SECURITY_ROLE_MANAGER_INSTALLER_MANAGER'),
295 'PERMISSIONS' =>
array(
324 foreach ($defaultRoles as $roleCode => $role)
326 $addResult = RoleTable::add(
array(
327 'NAME' => $role[
'NAME'],
328 'XML_ID' => $roleCode,
331 $roleId = $addResult->getId();
334 $roleIds[$roleCode] = $roleId;
339 if (isset($roleIds[
'ADMIN']))
341 Model\Role\AccessTable::add(
array(
342 'ROLE_ID' => $roleIds[
'ADMIN'],
343 'ACCESS_CODE' =>
'G1'
346 if (isset($roleIds[
'MANAGER']) && Loader::includeModule(
'intranet'))
348 $departmentTree = \CIntranetUtils::getDeparmentsTree();
349 $rootDepartment = (int)$departmentTree[0][0];
351 if ($rootDepartment > 0)
353 Model\Role\AccessTable::add(
array(
354 'ROLE_ID' => $roleIds[
'MANAGER'],
355 'ACCESS_CODE' =>
'DR'.$rootDepartment
if(!is_object($USER)||! $USER->IsAuthorized()) $userId
static deleteByRoleId($roleId)
static deleteByRoleId($roleId)
static getRolesByUserId($userId)
static deleteRole($roleId)
static getRolePermissions($roleId)
static getRoleList(array $parameters=[])
static getAccessList(array $parameters=[])
static setAccessCodes(array $list=[])
static setRolePermissions($roleId=null, array $roleFields=[], array $permissions)
static installRolesAgent()
static normalize(array $source)
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
</p ></td >< td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0cm 2.0pt 0cm 2.0pt;height:9.0pt'>< p class=Normal align=center style='margin:0cm;margin-bottom:.0001pt;text-align:center;line-height:normal'>< a name=ТекстовоеПоле54 ></a ><?=($taxRate > count( $arTaxList) > 0) ? $taxRate."%"