9namespace Bitrix\Main\Access\Role;
11use Bitrix\Main\Access\AccessCode;
12use Bitrix\Main\Access\Exception\PermissionSaveException;
13use Bitrix\Main\Access\Exception\RoleNotFoundException;
14use Bitrix\Main\Access\Exception\RoleRelationSaveException;
15use Bitrix\Main\Access\Exception\RoleSaveException;
16use Bitrix\Main\Access\Permission\PermissionDictionary;
17use Bitrix\Main\Application;
18use Bitrix\Main\DB\SqlExpression;
35 $class = static::getRoleTableClass();
36 return $class::getList()->fetchAll();
41 $class = static::getRoleTableClass();
46 if (!
$res->isSuccess())
51 return (
int)
$res->getId();
65 'order' => [
'ID' =>
'DESC']
72 $class = static::getRoleRelationTableClass();
73 return $class::getList(
$filter);
84 $roleClass = static::getRoleTableClass();
85 $roleClass::delete($this->roleId);
88 $relationClass = static::getRoleRelationTableClass();
89 $relationClass::deleteList([
90 '=ROLE_ID' => $this->roleId
94 $permissionClass = static::getPermissionTableClass();
95 $permissionClass::deleteList([
96 '=ROLE_ID' => $this->roleId
104 if ($this->role->getName() ===
$title)
109 $dictionaryClass = static::getRoleDictionaryClass();
112 && $dictionaryClass::getRoleName($this->role->getName()) ===
$title
118 $this->role->setName(
$title);
129 $class = static::getPermissionTableClass();
130 $res = $class::getList([
132 '=ROLE_ID' => $this->roleId
138 foreach (
$res as $row)
140 $permissions[$row[
'PERMISSION_ID']] = $row[
'VALUE'];
164 $permissionClass = static::getPermissionTableClass();
165 $permissionClass::deleteList([
166 '=ROLE_ID' => $this->roleId
172 foreach ($permissions as $id => $value)
182 $query[] = $expression->compile();
191 'INSERT INTO ?# (ROLE_ID, PERMISSION_ID, VALUE) VALUES ' . implode(
',',
$query),
192 $permissionClass::getTableName(),
196 $query = $expression->compile();
217 $roleRelationsClass = static::getRoleRelationTableClass();
218 $roleRelationsClass::deleteList([
219 '=ROLE_ID' => $this->roleId
237 $query[] = $expression->compile();
246 'INSERT INTO ?# (ROLE_ID, RELATION) VALUES ' . implode(
',',
$query),
247 $roleRelationsClass::getTableName(),
251 $query = $expression->compile();
267 $class = static::getRoleTableClass();
268 $this->role = $class::getById($this->roleId)->fetchObject();
279 foreach ($permissions as $id => $value)
static recursiveValidatePermission(array $permissions, $id)
static getRoleTableClass()
updatePermissions(array $permissions)
validatePermissions(array $permissions)
static createRole(string $title)
updateTitle(string $title)
updateRoleRelations(array $roleRelations)
static getRoleRelationTableClass()
static getPermissionTableClass()
static getRoleDictionaryClass()
static getConnection($name="")
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
if(!is_null($config))($config as $configItem)(! $configItem->isVisible()) $code