torrentpier-lts/library/ajax/manage_user.php

99 lines
2.7 KiB
PHP
Raw Normal View History

<?php
if (!defined('IN_AJAX')) die(basename(__FILE__));
global $userdata, $lang, $bb_cfg;
if (!$user_id = intval($this->request['user_id']))
2023-10-03 15:39:45 +03:00
{
$this->ajax_die($lang['NO_USER_ID_SPECIFIED']);
}
if (!$mode = (string) $this->request['mode'])
{
$this->ajax_die('invalid mode (empty)');
}
switch ($mode)
{
case 'delete_profile':
if ($userdata['user_id'] == $user_id) $this->ajax_die($lang['USER_DELETE_ME']);
if (empty($this->request['confirmed'])) $this->prompt_for_confirm($lang['USER_DELETE_CONFIRM']);
2024-03-06 14:27:13 +03:00
if ($user_id != BOT_UID && $user_id != GUEST_UID)
{
delete_user_sessions($user_id);
user_delete($user_id);
2024-03-05 13:29:41 +03:00
$user_id = $userdata['user_id']; // Store self user_id for redirect after successful deleting
$this->response['info'] = $lang['USER_DELETED'];
}
else $this->ajax_die($lang['USER_DELETE_CSV']);
break;
case 'delete_topics':
if (empty($this->request['confirmed']) && $userdata['user_id'] == $user_id) $this->prompt_for_confirm($lang['DELETE_USER_POSTS_ME']);
if (empty($this->request['confirmed'])) $this->prompt_for_confirm($lang['DELETE_USER_ALL_POSTS_CONFIRM']);
if (IS_ADMIN)
{
$user_topics = DB()->fetch_rowset("SELECT topic_id FROM ". BB_TOPICS ." WHERE topic_poster = $user_id", 'topic_id');
$deleted_topics = topic_delete($user_topics);
$deleted_posts = post_delete('user', $user_id);
$this->response['info'] = $lang['USER_DELETED_POSTS'];
}
else $this->ajax_die($lang['NOT_ADMIN']);
break;
case 'delete_message':
if (empty($this->request['confirmed']) && $userdata['user_id'] == $user_id) $this->prompt_for_confirm($lang['DELETE_USER_POSTS_ME']);
if (empty($this->request['confirmed'])) $this->prompt_for_confirm($lang['DELETE_USER_POSTS_CONFIRM']);
if (IS_ADMIN)
{
post_delete('user', $user_id);
$this->response['info'] = $lang['USER_DELETED_POSTS'];
}
else $this->ajax_die($lang['NOT_ADMIN']);
break;
case 'user_activate':
if (empty($this->request['confirmed'])) $this->prompt_for_confirm($lang['DEACTIVATE_CONFIRM']);
2024-03-06 14:27:13 +03:00
DB()->query("UPDATE ". BB_USERS ." SET user_active = 1 WHERE user_id = ". $user_id);
$this->response['info'] = $lang['USER_ACTIVATE_ON'];
break;
case 'user_deactivate':
if ($userdata['user_id'] == $user_id) $this->ajax_die($lang['USER_DEACTIVATE_ME']);
if (empty($this->request['confirmed'])) $this->prompt_for_confirm($lang['ACTIVATE_CONFIRM']);
2024-03-06 14:27:13 +03:00
DB()->query("UPDATE ". BB_USERS ." SET user_active = 0 WHERE user_id = ". $user_id);
delete_user_sessions($user_id);
$this->response['info'] = $lang['USER_ACTIVATE_OFF'];
break;
2023-08-10 09:35:32 +03:00
default:
2024-01-05 21:21:00 +03:00
$this->ajax_die('Invalid mode: ' . $mode);
break;
}
$this->response['mode'] = $mode;
2023-10-03 15:39:45 +03:00
$this->response['url'] = html_entity_decode(make_url('/') . PROFILE_URL . $user_id);