10namespace Bitrix\Main\Access\Permission;
12use Bitrix\Main\Localization\Loc;
13use Bitrix\Main\NotSupportedException;
14use Bitrix\Main\ORM\Data\Result;
15use Bitrix\Main\ORM\Event;
16use Bitrix\Main\Access\Entity\DataManager;
17use Bitrix\Main\ORM\Fields;
18use Bitrix\Main\ORM\EntityError;
20Loc::loadMessages(__FILE__);
28 'autocomplete' =>
true,
52 if (!static::checkDataFields(
$data))
56 $result->addError(
new EntityError(Loc::getMessage(
'ACCESS_PERMISSION_PARENT_VALIDATE_ERROR')));
59 $data = static::loadUpdateRow($primary,
$data);
62 if (!static::validateRow(
$data))
64 $result->addError(
new EntityError(Loc::getMessage(
'ACCESS_PERMISSION_PARENT_VALIDATE_ERROR')));
80 $primary =
$event->getParameter(
"primary");
85 parent::onAfterAdd(
$event);
90 $primary =
$event->getParameter(
"primary");
95 parent::onAfterUpdate(
$event);
100 $connection = static::getEntity()->getConnection();
103 $data = static::loadUpdateRow($primary,
$data);
109 UPDATE ". $helper->quote(static::getTableName()) .
"
112 ROLE_ID = ".
$data[
'ROLE_ID'] .
"
113 AND PERMISSION_ID LIKE '".
$data[
'PERMISSION_ID'] .
".%'
120 if (!static::checkDataFields(
$data))
122 $row = static::getRowById($primary);
123 foreach ($row as
$k => $v)
125 if (!array_key_exists(
$k,
$data))
142 if (!$parentPermissions)
147 $res = static::getList([
148 'select' => [
'VALUE'],
150 '=ROLE_ID' => (
int)
$data[
'ROLE_ID'],
151 '%=PERMISSION_ID' => $parentPermissions,
170 if (!$field->hasParameter(
'required'))
175 !array_key_exists($field->getName(),
$data)
176 || !
$data[$field->getName()]
static updateChildPermission($primary, array $data)
static updateMulti($primaries, $data, $ignoreEvents=false)
static onAfterUpdate(Event $event)
static onAfterAdd(Event $event)
static addMulti($rows, $ignoreEvents=false)
static loadUpdateRow($primary, array $data)
static checkDataFields(array $data)
static checkFields(Result $result, $primary, array $data)
static validateRow(array $data)
static getParentsPath(string $permissionId)
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)