Доступ к полям тикета в зависимости от пользователя

Ну так переопредели только для нужных статусов). А для остальных запускай стандартный GetAttributeFlags.

Переопределение производится, если я правильно понимаю, внутри XML файла, Там нет возможности настроить разные переопределения в зависимости от статуса, только на уровне класса.

Внутри XML в тегах <methods> переопределяется функция. В теле функции можно делать всё что угодно. Проверяй статус (он передается в функцию как параметр), а затем делай другие проверки (необходимые для этого статуса) и возвращай нужный флаг атрибута.

Понятно. Меня смутила фраза

Не будет разных GetAttributeFlags (стандартных и переопределенных). Будет один с полной логикой только внутри.

Ну если нужно переопределить поведение всех полей, то да. Если нужно скрыть одно-два поля, то зачем переписывать логику для всех?

Провели апгрейд на тестовом сервере до последней версии Ubuntu 14.01. это приведо к апгрейду PHP до версии 5.5.9
ii libapache2-mod-php5 5.5.9+dfsg-1ubuntu4.5 i386 server-side, HTML-embedded scripting language (Apache 2 module)
ii php5 5.5.9+dfsg-1ubuntu4.5 all server-side, HTML-embedded scripting language (metapackage)
ii php5-cli 5.5.9+dfsg-1ubuntu4.5 i386 command-line interpreter for the php5 scripting language
ii php5-common 5.5.9+dfsg-1ubuntu4.5 i386 Common files for packages built from the php5 source
ii php5-json 1.3.2-2build1 i386 JSON module for php5
ii php5-ldap 5.5.9+dfsg-1ubuntu4.5 i386 LDAP module for php5
ii php5-mcrypt 5.4.6-0ubuntu5 i386 MCrypt module for php5
ii php5-mysql 5.5.9+dfsg-1ubuntu4.5 i386 MySQL module for php5
ii php5-readline 5.5.9+dfsg-1ubuntu4.5 i386 Readline module for php5

После чего код метода GetAttributeFlags перестал работать. При запуске выдает ошибку
PHP Fatal error: Call-time pass-by-reference has been removed in /var/
www/iTop/env-production/itop-request-mgmt/model.itop-request-mgmt.php on line 986

Эта строка 986 находится в описании переопределенного метода
return parent::GetAttributeFlags($sAttCode, &$aReasons, $sTargetState);

Отключил твой модуль, все снова заработало.
Отчего это происходит и как с этим бороться?
Заранее спасибо

Амперсанд попробуй убрать.

Спасибо, помогло. Значит, синтаксический анализатор PHP в новой версии претерпел изменения. То-ли убрали ненужное, то-ли добавили новые правила. Надеюсь, что кроме этого ничего не поменялось.

Думаю, в остальном все будет ок. А то, что вылезло - это моя ошибка.

Добрый день!!!
Полагаю я в правильную тему попал.
Необходимо разрешить редактировать только внутренний журнал определенному профилю пользователей, не подскажите как это реализовать?

Добрый вечер, @Grigorij_Vodolagin.
В теме достаточно подробно описан один из вариантов, и даже пример есть. Что именно не получается?

Этот вариант пригодился, спасибо, но по этому варианту я смог скрыть private_log только по контакту, а вот как сделать скрытие private_log для определенного профиля не разобрался.

Владимир, спасибо огромное за пример!!!
Долго мучился, не мог понять почему не отрабатывает функция GetUserOrg(), оказалось просто надо было её заново ввести.
Реализовал сортировку по организации, если User сотрудник мое организации - он видит privat_log, остальные не видят.

  <class id="UserRequest">
false public Overload-iDisplay Get('org_id'), false); if ( $oOrg->Get('name') != 'My_company') { return OPT_ATT_HIDDEN; } } else { return parent::GetAttributeFlags($sAttCode, $aReasons, $sTargetState); } } ]]>