- Модуль: tasks
- Путь к файлу: ~/bitrix/modules/tasks/lib/manager/task.php
- Класс: BitrixTasksManagerTask
- Вызов: Task::cleanData
static function cleanData(UserModel $user, array $data)
{
if ($user->isAdmin())
{
return $data;
}
$userId = $user->getUserId();
if (
array_key_exists('SE_PROJECT', $data)
&& isset($data['SE_PROJECT']['ID'])
)
{
$groupId = (int) $data['SE_PROJECT']['ID'];
if (
!FeaturePermRegistry::getInstance()->get(
$groupId,
'tasks',
'create_tasks',
$userId
)
&& !FeaturePermRegistry::getInstance()->get(
$groupId,
'tasks',
'edit_tasks',
$userId
)
)
{
$data['SE_PROJECT']['ID'] = 0;
}
}
if (!$user->isExtranet())
{
return $data;
}
if (
array_key_exists('SE_ORIGINATOR', $data)
&& isset($data['SE_ORIGINATOR']['ID'])
)
{
if (!Group::usersHasCommonGroup($userId, (int) $data['SE_ORIGINATOR']['ID']))
{
$data['SE_ORIGINATOR']['ID'] = $userId;
}
}
if (
array_key_exists('SE_RESPONSIBLE', $data)
&& is_array($data['SE_RESPONSIBLE'])
)
{
foreach ($data['SE_RESPONSIBLE'] as $code => $member)
{
if (!Group::usersHasCommonGroup($userId, (int) $member['ID']))
{
unset($data['SE_RESPONSIBLE'][$code]);
}
}
}
if (empty($data['SE_RESPONSIBLE']))
{
$data['SE_RESPONSIBLE'] = [
'U'.$userId => [
'ID' => $userId,
'NAME' => '',
'LAST_NAME' => '',
'EMAIL' => '',
],
];
}
if (
array_key_exists('SE_ACCOMPLICE', $data)
&& is_array($data['SE_ACCOMPLICE'])
)
{
foreach ($data['SE_ACCOMPLICE'] as $code => $member)
{
if (!Group::usersHasCommonGroup($userId, (int) $member['ID']))
{
unset($data['SE_ACCOMPLICE'][$code]);
}
}
}
if (
array_key_exists('SE_AUDITOR', $data)
&& is_array($data['SE_AUDITOR'])
)
{
foreach ($data['SE_AUDITOR'] as $code => $member)
{
if (!Group::usersHasCommonGroup($userId, (int) $member['ID']))
{
unset($data['SE_AUDITOR'][$code]);
}
}
}
return $data;
}