- Модуль: socialnetwork
- Путь к файлу: ~/bitrix/modules/socialnetwork/classes/general/user_group.php
- Класс: CAllSocNetUserToGroup
- Вызов: CAllSocNetUserToGroup::CheckFields
static function CheckFields($ACTION, &$relationFields, $id = 0): bool
{
global $APPLICATION, $DB, $arSocNetAllowedRolesForUserInGroup, $arSocNetAllowedInitiatedByType;
if ($ACTION !== "ADD" && (int)$id <= 0)
{
$APPLICATION->ThrowException("System error 870164", "ERROR");
return false;
}
if (
(isset($relationFields['USER_ID']) || $ACTION === "ADD")
&& (int)$relationFields["USER_ID"] <= 0
)
{
$APPLICATION->ThrowException(Loc::getMessage('SONET_UG_EMPTY_USER_ID'), 'EMPTY_USER_ID');
return false;
}
if (isset($relationFields['USER_ID']))
{
$res = CUser::getById($relationFields["USER_ID"]);
if (!$res->fetch())
{
$APPLICATION->ThrowException(Loc::getMessage('SONET_UG_ERROR_NO_USER_ID'), 'ERROR_NO_USER_ID');
return false;
}
}
if (
(isset($relationFields['GROUP_ID']) || $ACTION === "ADD")
&& (int)$relationFields["GROUP_ID"] <= 0
)
{
$APPLICATION->ThrowException(Loc::getMessage('SONET_UG_EMPTY_GROUP_ID'), 'EMPTY_GROUP_ID');
return false;
}
if (
isset($relationFields["GROUP_ID"])
&& !CSocNetGroup::getById($relationFields["GROUP_ID"])
)
{
$APPLICATION->ThrowException(Loc::getMessage('SONET_UG_ERROR_NO_GROUP_ID'), 'ERROR_NO_GROUP_ID');
return false;
}
if (
(isset($relationFields["ROLE"]) || $ACTION === "ADD")
&& $relationFields["ROLE"] === ''
)
{
$APPLICATION->ThrowException(Loc::getMessage('SONET_UG_EMPTY_ROLE'), 'EMPTY_ROLE');
return false;
}
if (
isset($relationFields["ROLE"])
&& !in_array($relationFields["ROLE"], $arSocNetAllowedRolesForUserInGroup, true)
)
{
$APPLICATION->ThrowException(str_replace(
"#ID#",
$relationFields["ROLE"],
Loc::getMessage('SONET_UG_ERROR_NO_ROLE')
), 'ERROR_NO_ROLE');
return false;
}
if (
(isset($relationFields["INITIATED_BY_TYPE"]) || $ACTION === "ADD")
&& (string)$relationFields["INITIATED_BY_TYPE"] === ''
)
{
$APPLICATION->ThrowException(Loc::getMessage('SONET_UG_EMPTY_INITIATED_BY_TYPE'), 'EMPTY_INITIATED_BY_TYPE');
return false;
}
if (
isset($relationFields["INITIATED_BY_TYPE"])
&& !in_array($relationFields["INITIATED_BY_TYPE"], $arSocNetAllowedInitiatedByType, true)
)
{
$APPLICATION->ThrowException(str_replace(
'#ID#',
$relationFields["INITIATED_BY_TYPE"],
Loc::getMessage('SONET_UG_ERROR_NO_INITIATED_BY_TYPE')
), 'ERROR_NO_INITIATED_BY_TYPE');
return false;
}
if (
(isset($relationFields['INITIATED_BY_USER_ID']) || $ACTION === "ADD")
&& (int)$relationFields['INITIATED_BY_USER_ID'] <= 0
)
{
$APPLICATION->ThrowException(
Loc::getMessage('SONET_UG_EMPTY_INITIATED_BY_USER_ID'),
'EMPTY_INITIATED_BY_USER_ID'
);
return false;
}
if (isset($relationFields["INITIATED_BY_USER_ID"]))
{
$res = CUser::GetByID($relationFields["INITIATED_BY_USER_ID"]);
if (!$res->fetch())
{
$APPLICATION->ThrowException(
Loc::getMessage('SONET_UG_ERROR_NO_INITIATED_BY_USER_ID'),
'ERROR_NO_INITIATED_BY_USER_ID'
);
return false;
}
}
if (
isset($relationFields['DATE_CREATE'])
&& !$DB->IsDate($relationFields['DATE_CREATE'], false, LANG, 'FULL')
)
{
$APPLICATION->ThrowException(Loc::getMessage('SONET_UG_EMPTY_DATE_CREATE'), 'EMPTY_DATE_CREATE');
return false;
}
if (
isset($relationFields['DATE_UPDATE'])
&& !$DB->IsDate($relationFields['DATE_UPDATE'], false, LANG, 'FULL')
)
{
$APPLICATION->ThrowException(Loc::getMessage('SONET_UG_EMPTY_DATE_UPDATE'), 'EMPTY_DATE_UPDATE');
return false;
}
if (
isset($relationFields['DATE_LAST_VIEW'])
&& !$DB->IsDate($relationFields['DATE_LAST_VIEW'], false, LANG, 'FULL')
)
{
$APPLICATION->ThrowException(Loc::getMessage('SONET_UG_EMPTY_DATE_LAST_VIEW'), 'EMPTY_DATE_LAST_VIEW');
return false;
}
if (
(
isset($relationFields["SEND_MAIL"])
&& $relationFields["SEND_MAIL"] !== "N"
)
|| !isset($relationFields['SEND_MAIL'])
)
{
$relationFields["SEND_MAIL"] = "Y";
}
return true;
}