Я создал новый профиль и дал ему действие массового чтения.
Теперь я не хочу давать новому профилю права на редактирование всего класса User Request, а, например, только поля «private log». Есть ли способ сделать это?
<?xml version="1.0" encoding="UTF-8"?>
<itop_design xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.6">
<user_rights>
<groups>
<group id="UserRequest" _delta="must_exist">
<classes>
<class id="UserRequest">
</class>
</classes>
</group>
</groups>
<profiles>
<profile id="100" _delta="define">
<name>Logistics Team</name>
<description>Profile for logistics team members with read access to assets and limited ticket handling permissions</description>
<groups>
<group id="*">
<actions>
<action id="action:read">allow</action>
<action id="action:bulk read">allow</action>
</actions>
</group>
<group id="UserRequest">
<actions>
<action id="stimulus:ev_assign">allow</action>
</actions>
</group>
</groups>
</profile>
</profiles>
</user_rights>
</itop_design>
Я также попытался добавить два новых метода (GetAttribute и GetInitialSate), но безуспешно:
<method id="GetAttributeFlags">
<static>false</static>
<access>public</access>
<type>Overload-DBObject</type>
<code>
<![CDATA[
public function GetAttributeFlags($sAttCode, &$aReasons = array(), $sTargetState = '')
if (($sAttCode == 'private_log') && (UserRights::HasProfile('Logistics Team'))) {
return (OPT_ATT_MUSTPROMPT | parent::GetAttributeFlags($sAttCode, $aReasons, $sTargetState));
}
return parent::GetAttributeFlags($sAttCode, $aReasons, $sTargetState);
}
]]>
</code>
</method>