- Модуль: intranet
- Путь к файлу: ~/bitrix/modules/intranet/lib/component/userlist.php
- Класс: BitrixIntranetComponentUserList
- Вызов: UserList::setActivityAction
public function setActivityAction(array $params = [])
{
global $USER, $APPLICATION;
$result = false;
$userId = (!empty($params['userId']) ? intval($params['userId']) : 0);
$action = (!empty($params['action']) ? trim($params['action']) : '');
if (
$userId <= 0
|| !in_array($action, ['restore', 'delete', 'deactivate', 'deactivateInvited'])
|| !Loader::includeModule('socialnetwork')
)
{
return $result;
}
$canEdit = (
$USER->canDoOperation('edit_own_profile')
|| $USER->isAdmin()
);
$currentUserPerms = CSocNetUserPerms::initUserPerms(
$USER->getId(),
$userId,
CSocNetUser::isCurrentUserModuleAdmin(SITE_ID, !(Loader::includeModule('bitrix24') && CBitrix24::isPortalAdmin($USER->getId())))
);
if (
$currentUserPerms["Operations"]["modifyuser_main"]
&& $canEdit
&& $userId != $USER->getId()
&& self::checkIntegratorActionRestriction([
'userId' => $userId
])
)
{
switch ($action)
{
case 'delete':
$user = new CUser;
$result = $user->delete($userId);
if (!$result)
{
if (!empty($user->LAST_ERROR))
{
$error = $user->LAST_ERROR;
}
else
{
$ex = $APPLICATION->getException();
$error = $ex->getString();
}
$this->addError(new Error($error));
return false;
}
break;
case 'restore':
case 'deactivate':
case 'deactivateInvited':
if (
$action === "setActivity"
&& Loader::includeModule("bitrix24")
&& !Feature::isFeatureEnabled("user_dismissal")
&& !BitrixBitrix24Integrator::isIntegrator($userId)
)
{
return false;
}
$result = $USER->update($userId, ['ACTIVE' => ($action == 'restore' ? 'Y' : 'N')]);
break;
}
}
return $result;
}