46 return PermissionTable::query()
47 ->registerRuntimeField(
'role',
48 (
new Reference(
'role',RoleTable::class, Join::on(
'this.ROLE_ID',
'ref.ID')))
49 ->configureJoinType(Join::TYPE_INNER)
52 ->setSelect([
'CATEGORY_ID' =>
'role.DEAL_CATEGORY_ID'])
53 ->where(
'PERMISSION_ID', PermissionDictionary::SEGMENT_CLIENT_OWN_CATEGORY)
54 ->where(
'VALUE', PermissionDictionary::VALUE_YES)
55 ->whereIn(
'ROLE_ID', $this->rolePermissionService->getRoleListByUser(
$userId))
72 $allowAll = $this->accessController->isAdmin();
74 $dealCategories[
''] = $categories[
'']??Loc::getMessage(
'SENDER_DEAL_CATEGORY_WITHOUT_DEAL_PREP_MSG_1');
75 foreach ($ableDealCategories as $ableDealCategory)
77 if((
int)$ableDealCategory[
'CATEGORY_ID'] === self::ALL_CATEGORIES)
86 foreach ($ableDealCategories as $ableDealCategory)
88 $dealCategories[$ableDealCategory[
'CATEGORY_ID']] = $categories[$ableDealCategory[
'CATEGORY_ID']];
90 return $dealCategories;
93 return $dealCategories + $categories;
109 $map = RoleUtil::preparedRoleMap();
111 $managerRoleId =
null;
113 foreach (
$map as $roleKey => $permissions)
115 $roleName = RoleUtil::getLocalizedName($roleKey);
117 $roleId = $this->rolePermissionService->saveRole($roleName, $dealCategoryId);
118 $query = array_merge(
$query, RoleUtil::buildInsertPermissionQuery($permissions, $roleId));
120 if ($roleKey ===
'MANAGER')
122 $managerRoleId = $roleId;
125 if ($roleKey ===
'ADMIN')
127 $adminRoleId = $roleId;
131 RoleUtil::insertPermissions(
$query);
134 'id' => $managerRoleId,
136 'AE0' =>
'usergroups'
140 'id' => $adminRoleId,
147 return $this->rolePermissionService->getRoleList(
150 "filter" => [
"=DEAL_CATEGORY_ID" => $dealCategoryId]