3namespace Bitrix\Main\UserField\Access\Permission;
5use Bitrix\Main\Access\Permission\AccessPermissionTable;
6use Bitrix\Main\ORM\Fields;
7use Bitrix\Main\ORM\Query\Query;
8use Bitrix\Main\ORM\Query\Join;
9use Bitrix\Main\ORM\Fields\Relations\Reference;
10use Bitrix\Main\UserAccessTable;
11use Bitrix\Main\UserFieldTable;
31 private const PERMISSION_ALLOWED = 1;
35 return 'b_user_field_permission';
40 return UserFieldPermission::class;
47 'autocomplete' =>
true,
67 UserFieldTable::class,
68 Join::on(
'this.USER_FIELD_ID',
'ref.ID')
72 UserAccessTable::class,
73 Join::on(
'this.ACCESS_CODE',
'ref.ACCESS_CODE')
89 UPDATE `" . static::getTableName() .
"`
92 USER_FIELD_ID = " .
$data[
'USER_FIELD_ID'] .
"
93 AND ACCESS_CODE = " .
$data[
'ACCESS_CODE'] .
"
94 AND PERMISSION_ID LIKE '" .
$data[
'PERMISSION_ID'] .
".%'
96 static::getEntity()->getConnection()->query($sql);
106 if (!$parentPermissions)
112 'select' => [
'VALUE'],
114 '=USER_FIELD_ID' => (
int)
$data[
'USER_FIELD_ID'],
115 '=ACCESS_CODE' => (
int)
$data[
'ACCESS_CODE'],
116 '%=PERMISSION_ID' => $parentPermissions,
136 $query->addSelect(
'USER_FIELD.FIELD_NAME',
'FIELD_NAME');
137 $query->addSelect(
'ACCESS_CODE');
138 $query->addSelect(
'USER_ACCESS.USER_ID',
'USER_ID');
139 $query->addSelect(
'USER_FIELD_ID');
140 $query->addFilter(
'=ENTITY_TYPE_ID', $entityTypeID);
141 $query->addFilter(
'=VALUE', self::PERMISSION_ALLOWED);
142 $query->whereNotNull(
'FIELD_NAME');
156 public static function saveEntityConfiguration(
160 string $permissionId,
161 ?
string $entityTypeName =
null
164 if ($userField = self::getUserFieldId($fieldName, $entityTypeName))
166 self::removeEntityConfiguration($userField[
'ID'], $entityTypeId);
167 if (is_array($accessCodes))
169 foreach ($accessCodes as $accessCode)
175 'ENTITY_TYPE_ID' => $entityTypeId,
176 'USER_FIELD_ID' => $userField[
'ID'],
177 'ACCESS_CODE' => $accessCode[
'ID'],
178 'PERMISSION_ID' => $permissionId,
179 'VALUE' => self::PERMISSION_ALLOWED
191 private static function removeEntityConfiguration(
int $userFieldId,
int $entityTypeId): void
194 '=ENTITY_TYPE_ID' => $entityTypeId,
195 '=USER_FIELD_ID' => $userFieldId
204 private static function getUserFieldId(
string $fieldName, ?
string $entityId =
null): ?
array
206 $filter = [
'=FIELD_NAME' => $fieldName];
static deleteList(array $filter)
static loadUpdateRow($primary, array $data)
static getRow(array $parameters)
static createObject($setDefaultValues=true)
static updateChildPermission($primary, array $data)
static getUserFieldsAccessCodes(int $entityTypeID)
static validateRow(array $data)
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
static getParentsPath(string $permissionId)
</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."%"