$stddiz = $_POST['stddiz']; $frl = new freelancer(); $frl->design = isset($stddiz) ? 0 : 1; $error .= $frl->Update($uid, $res); break; case "delete": // удаление аккаунта require_once ABS_PATH . "/classes/users.php"; require_once ABS_PATH . '/classes/admin_log.php'; $user_obj = new users(); $sUid = get_uid(); $user_obj->GetUserByUID($sUid); $sObjName = $user_obj->uname . ' ' . $user_obj->usurname . '[' . $user_obj->login . ']'; $sObjLink = '/users/' . $user_obj->login; $sReason = "Аккаунт удален самостоятельно"; if ($user_obj->setUserBan(get_uid(), 0, $sReason, 4, '', 1, true)) { // если удалось заблокировать аккаунт // пишем лог admin_log::addLog(admin_log::OBJ_CODE_USER, admin_log::ACT_ID_DEL_ACC, $sUid, $sUid, $sObjName, $sObjLink, 1, '', null, $sReason); header("Location: /users/{$user}"); } break; case 'real_name_splash': // сохранение имени, фамилии и юзерпика с соответствующего сплэш-скрина require_once ABS_PATH . "/classes/users.php"; require_once ABS_PATH . "/classes/attachedfiles.php"; require_once ABS_PATH . "/classes/CFile.php"; $userObj = new users(); $userID = get_uid(); $aFiles = new attachedfiles($_POST['attachedfiles_session']); $userpics = $aFiles->getFiles(array(1));
/** * Изменение бана пользователя * * @param string $sUsers JSON строка с массивом UID пользователей * @param int $nActId * @param string $sReasonTxt причина * @param int $nReasonId ID причины, если она выбрана из списка (таблица admin_reasons) * @param int $nNoSend опционально. установить в 1 если не нужно оповещать юзера о том что он забанен. * @param string $sContext Контекст (для лога админских действий) * @param $sContext * @param bool $noticeSbrPartners уведомить партнеров по сделке о блокировке аккаунта * @return object xajaxResponse */ function updateUserBan($sUsers = '', $nActId, $sReasonTxt = '', $nReasonId = null, $sDateTo = '', $nNoSend = 0, $sContext = '', $noticeSbrPartners = false) { session_start(); $objResponse = new xajaxResponse(); if (hasPermissions('users')) { require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/users.php'; require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/messages_spam.php'; require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/messages.php'; require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/sbr_emp.php'; require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/sbr_frl.php'; $objUser = new users(); $nReasonId = $nReasonId ? $nReasonId : null; $aContext = _jsonArray($sContext); $aContext = $aContext ? $aContext : array('uid' => '', 'code' => 0, 'link' => '', 'name' => ''); $aUsers = _jsonArray($sUsers); $bCheck = true; if ($aContext['uid'] == 'moder') { global $user_content; $bCheck = $user_content->checkContent($aContext['contentId'], $aContext['streamId'], $aContext['recId']); } if ($bCheck && $aUsers && hasPermissions('users')) { foreach ($aUsers as $sUid) { $objUser->GetUserByUID($sUid); if ($objUser->uid) { $sReason = str_replace('%USERNAME%', $objUser->uname . ' ' . $objUser->usurname, $sReasonTxt); $sReason = change_q($sReason, FALSE, 0, TRUE); $sUniqId = "userban_{$sUid}"; $sObjName = $objUser->uname . ' ' . $objUser->usurname . '[' . $objUser->login . ']'; $sObjLink = '/users/' . $objUser->login; if ($nActId == 1) { // разблокируем if ($objUser->is_banned || $objUser->ban_where) { if ($objUser->is_banned) { $objResponse->script("\$\$('.warnbutton-{$sUid}').setStyle('display','');"); $objResponse->script("\$\$('.warnlist-{$sUid}').set('html','');"); $objResponse->script("\$\$('span[id^=\"warn_{$user->uid}\"]').set('html', '0')"); $objResponse->script("\$\$('div[id^=\"warn_{$user->uid}\"]').set('html', '0')"); } //$objUser->ban_where = 0; $objUser->unsetUserBan($sUid, $objUser->ban_where); // пишем лог админских действий $nLogActId = $objUser->is_banned ? 4 : 6; if ($objUser->self_deleted == 't') { $nLogActId = admin_log::ACT_ID_RESTORE_ACC; } admin_log::addLog(admin_log::OBJ_CODE_USER, $nLogActId, $sUid, $sUid, $sObjName, $sObjLink, 0, '', $nReasonId, $sReason); } $objResponse->script("\$\$('.warnlink-{$sUid} a').set('html','Забанить!');"); $objResponse->script("\$\$('.comm-ban-{$sUid} a').set('html','Заблокировать');"); $objResponse->script("\$\$('.admin-block h4 em').setStyle('display','none');"); if ($objUser->uid == $aContext['uid']) { $objResponse->script("\$('banreasonblock-{$objUser->uid}').setStyle('display','none');"); } $warns = $objUser->GetWarns($sUid); $warncount = $warns ? count($warns) : 0; $objResponse->script("if(\$('warncount-{$sUid}')) { \$('warncount-{$sUid}').set('html', {$warncount}); }"); } else { if ($sDateTo) { $sError = ''; $aDate = explode('-', $sDateTo); if (!$aDate[1] || !$aDate[2] || !$aDate[0] || !checkdate($aDate[1], $aDate[2], $aDate[0])) { $sError = 'Укажите корректную конечную дату'; } elseif (($toRes = strtotime($sDateTo)) <= time()) { $sError = 'Укажите конечную дату в будущем'; } if ($sError) { $objResponse->alert($sError); $objResponse->script("\$('ban_btn').set( 'disabled', false );\$('ban_btn').set( 'value', 'Сохранить' );"); return $objResponse; } } if ($objUser->is_banned || $objUser->ban_where) { // редактируем текущую блокировку $nBanWhere = $nActId == 3 ? 0 : 1; $objUser->updateUserBan($sUid, $objUser->ban_where, $nBanWhere, $sReason, $nReasonId, $sDateTo); } else { $nBanWhere = $nActId == 3 ? 0 : 1; $sBanId = $objUser->setUserBan($sUid, $nBanWhere, $sReason, $nReasonId, $sDateTo, $nNoSend); // пишем лог админских действий admin_log::addLog(admin_log::OBJ_CODE_USER, $nActId, $sUid, $sUid, $sObjName, $sObjLink, $aContext['code'], $aContext['link'], $nReasonId, $sReason, $sBanId, $aContext['name']); // уведомляем партнеров по сбр if ($noticeSbrPartners) { if (is_emp($objUser->role)) { $sbr = new sbr_emp($sUid); } else { $sbr = new sbr_frl($sUid); } $sbrPartners = $sbr->_new_getOpenSbrPartners(); $messages = new messages(); $messages->yourSbrPartnerIsBanned($sbrPartners, $objUser->login); } $objResponse->script("\$\$('.warnlink-{$sUid} a').set('html','Разбанить');"); $objResponse->script("\$\$('.comm-ban-{$sUid} a').set('html','Разблокировать');"); if (!$nBanWhere) { $GLOBALS['session']->nullActivityByLogin($objUser->login); // статус присутсвия ------ $online_status = $GLOBALS['session']->view_online_status($objUser->login, false); $ago = $GLOBALS['session']->ago; if (!$GLOBALS['session']->is_active && $objUser->last_time) { $fmt = 'ynjGi'; if (time() - ($lt = strtotime($objUser->last_time)) > 24 * 3600) { $fmt = 'ynjG'; if (time() - $lt > 30 * 24 * 3600) { $fmt = 'ynj'; } } $ago = ago_pub($lt, $fmt); } if (!$ago) { $ago = "менее минуты"; } $online_status .= ' <span class="' . ($GLOBALS['session']->is_active ? 'u-act' : '') . '">' . ($GLOBALS['session']->is_active ? 'на сайте' : 'Был' . ($objUser->sex == 'f' ? 'а' : '') . ' на сайте: ' . $ago . ' назад') . '</span>'; //------------------------- $objResponse->script("\$\$('.colB .bBA').set('html','{$online_status}');"); } } $warns = $objUser->GetWarns($sUid); $warncount = $warns ? count($warns) : 0; $objResponse->script("if(\$('warncount-{$sUid}')) { \$('warncount-{$sUid}').set('html', {$warncount}); }"); $sDisplay = $nBanWhere = $nActId == 3 ? 'none' : ''; if ($sDisplay == '' && $warncount == 3) { $sDisplay = 'none'; } $objResponse->script("\$\$('.warnbutton-{$sUid}').setStyle('display','{$sDisplay}');"); if ($objUser->uid == $aContext['uid']) { $sDateToParts = preg_split("/-/", $sDateTo); $admin_info = $objUser->getName(get_uid(), $ee); $objResponse->assign('banreasonblock-text-' . $objUser->uid, 'innerHTML', 'Блокировка ' . ($nBanWhere ? 'везде' : 'в блогах') . ' ' . ($sDateTo ? 'до ' . $sDateToParts[2] . ' ' . monthtostr($sDateToParts[1], true) . ' ' . $sDateToParts[0] : 'навсегда')); $objResponse->assign('banreasonblock-comment-' . $objUser->uid, 'innerHTML', reformat($sReason, 50)); $objResponse->assign('banreasonblock-date-' . $objUser->uid, 'innerHTML', date("d.m.Y H:i")); $objResponse->assign('banreasonblock-admin-' . $objUser->uid, 'innerHTML', $admin_info['login']); $objResponse->assign('banreasonblock-admin-' . $objUser->uid, 'href', '/users/' . $admin_info['login']); $objResponse->script("\$('banreasonblock-{$objUser->uid}').setStyle('display','block');"); } // удаляем все жалобы на спам для юзера $oSpam = new messages_spam(); $oSpam->deleteSpamBySpamer($sUid, 3); } $objResponse->script("delete banned.buffer['userban_{$sUid}'];"); $str = "<b>Пользователь забанен</b>"; if ($objUser->is_banned) { $str = ""; } $objResponse->script("\n if (\$('user_banned_" . $objUser->uid . "')) { \n \t\$('user_banned_" . $objUser->uid . "').set('html', '{$str}');\n }else {\n \tvar p = \$('user_first_paragraph_" . $objUser->uid . "'); \t\n \tif (p) {\n \t\tvar span = new Element('span', {\"style\":\"color:#000\", \"id\":\"user_banned_" . $objUser->uid . "\"});\n \t\tspan.inject(p, 'bottom');\n\t\t\t\t\t\t\tspan.set('html', '{$str}'); \t\t\n \t}\n }\n "); } } } if ($aContext['uid'] == 'gray_ip') { $objResponse->script('if(window.opener){window.opener.window.location.reload(true);}'); } $objResponse->script("\$\$(\"div[id^='ov-notice']\").setStyle('display', 'none');"); $objResponse->script("\$('ov-notice22').toggleClass('b-shadow_hide');"); $objResponse->script("if(banned.reload==1){window.location.reload(true);}"); $objResponse->script("if(banned.zero){banned.zeroShow();}"); $objResponse->script("if(typeof(adminLogCheckUsers)!='undefined'){adminLogCheckUsers(false);};if(\$('chk_all')){\$('chk_all').checked=false;};"); if ($aContext['uid'] == 'admin_log_page' || $aContext['uid'] == 'admin_user_search') { $objResponse->script('window.location.reload(true)'); } if ($aContext['uid'] == 'moder') { // если бан делается из потока модерирования $objResponse->script('user_content.resolveContent(user_content.resolveSid, 2, user_content.resolveUid)'); $objResponse->script("parent.\$\$(\"div[id^='ov-notice']\").setStyle('display', 'none');"); $objResponse->script("parent.\$('ov-notice22').toggleClass('b-shadow_hide');"); } } return $objResponse; }
ini_set('memory_limit', '512M'); if (!isset($_SERVER['DOCUMENT_ROOT']) || !strlen($_SERVER['DOCUMENT_ROOT'])) { $_SERVER['DOCUMENT_ROOT'] = rtrim(realpath(pathinfo(__FILE__, PATHINFO_DIRNAME) . '/../../'), '/'); } require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/stdf.php'; require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/users.php'; require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/admin_log.php'; //------------------------------------------------------------------------------ //успешные сделки $uids = $DB->col("\n SELECT u.uid\n FROM account AS a\n INNER JOIN freelancer AS u ON u.uid = a.uid\n WHERE a.sum < -30 AND u.is_banned = B'0'\n LIMIT 1\n"); $logins = array(); if ($uids) { $objUser = new users(); foreach ($uids as $uid) { $objUser->GetUserByUID($uid); if (!$objUser->uid) { continue; } $sReason = 'Приостановка аккаунта до погашения задолженности. Обратитесь в поддержку <a href="mailto:support@fl.ru">support@fl.ru</a> когда будете готовы погасить задолженность за услуги сайта.'; $sBanId = $objUser->setUserBan($uid, 0, $sReason, null); // пишем лог админских действий $sObjName = $objUser->uname . ' ' . $objUser->usurname . '[' . $objUser->login . ']'; $sObjLink = '/users/' . $objUser->login; admin_log::addLog(admin_log::OBJ_CODE_USER, 3, $uid, $uid, $sObjName, $sObjLink, 0, '', null, $sReason, $sBanId, '', 103); //admin $logins[] = $objUser->login; //sleep(20); } } print_r($logins); exit;
break; case 'userban': if (!$sUid) { break; } // юзер не забанен на всем сайте $objUser = new users(); $objUser->GetUserByUID($sUid); if ($objUser->uid) { $sReason = 'Подозрительный пользователь: логин, имя или фамилия содержат подозрительные слова.'; if ($objUser->ban_where) { // меняем бан в блогах на бан на всем сайте $objUser->updateUserBan($sUid, 1, 0, $sReason, null, ''); } elseif (!$objUser->is_banned) { // баним на всем сайте $sBanId = $objUser->setUserBan($sUid, 0, $sReason, null, '', 1); $sObjName = $objUser->uname . ' ' . $objUser->usurname . '[' . $objUser->login . ']'; $sObjLink = '/users/' . $objUser->login; // пишем лог админских действий admin_log::addLog(admin_log::OBJ_CODE_USER, 3, $sUid, $sUid, $sObjName, $sObjLink, -1, '', null, $sReason, $sBanId); } users::banSuspiciousUser($sUid); $tail = ''; if ((int) $_GET['page'] > 0) { $tail = '?page=' . intval($_GET['page']); } header('Location: index.php' . $tail); exit; } break; case 'ban':