From 4553d083d7b0a2de28e668aa30dc598c04e5bc0e Mon Sep 17 00:00:00 2001
From: nanosimbiot
Date: Tue, 6 Sep 2011 06:31:12 +0000
Subject: [PATCH] r291
git-svn-id: https://torrentpier2.googlecode.com/svn/trunk@291 a8ac35ab-4ca4-ca47-4c2d-a49a94f06293
---
upload/ajax.php | 26 +++++----
.../{delete_userdata.php => manage_user.php} | 53 +++++++++++--------
.../templates/default/usercp_viewprofile.tpl | 28 +++++-----
3 files changed, 60 insertions(+), 47 deletions(-)
rename upload/ajax/{delete_userdata.php => manage_user.php} (67%)
diff --git a/upload/ajax.php b/upload/ajax.php
index fed3291e6..e51d5b065 100644
--- a/upload/ajax.php
+++ b/upload/ajax.php
@@ -42,6 +42,10 @@ switch ($ajax->action)
case 'user_register':
require(INC_DIR .'functions_validate.php');
break;
+
+ case 'manage_user':
+ require(INC_DIR .'functions_admin.php');
+ break;
}
// position in $ajax->valid_actions['xxx']
@@ -63,13 +67,13 @@ class ajax_common
'edit_user_profile' => array('admin'),
'change_user_rank' => array('admin'),
'change_user_opt' => array('admin'),
- 'delete_userdata' => array('admin'),
'change_tor_status' => array('mod'),
'mod_action' => array('mod'),
'gen_passkey' => array('user'),
'change_torrent' => array('user'),
+ 'manage_user' => array('user'),
'view_post' => array('guest'),
'view_torrent' => array('guest'),
@@ -412,17 +416,17 @@ class ajax_common
$this->response['html'] = $html;
$this->response['mode'] = $mode;
}
-
+
function get_forum_mods()
{
global $lang, $datastore;
-
+
$forum_id = (int) $this->request['forum_id'];
-
+
$datastore->enqueue(array(
'moderators',
));
-
+
$moderators = array();
$mod = $datastore->get('moderators');
@@ -433,7 +437,7 @@ class ajax_common
$moderators[] = ''. $mod['name_users'][$user_id] .'';
}
}
-
+
if (isset($mod['mod_groups'][$forum_id]))
{
foreach ($mod['mod_groups'][$forum_id] as $group_id)
@@ -441,10 +445,10 @@ class ajax_common
$moderators[] = ''. $mod['name_groups'][$group_id] .'';
}
}
-
+
$html = ': ';
$html .= ($moderators) ? join(', ', $moderators) : $lang['NONE'];
-
+
$this->response['html'] = ''.$html.'';
unset($moderators, $mod);
$datastore->rm('moderators');
@@ -484,10 +488,10 @@ class ajax_common
{
require(AJAX_DIR .'posts.php');
}
-
- function delete_userdata()
+
+ function manage_user()
{
- require(AJAX_DIR .'delete_userdata.php');
+ require(AJAX_DIR .'manage_user.php');
}
}
diff --git a/upload/ajax/delete_userdata.php b/upload/ajax/manage_user.php
similarity index 67%
rename from upload/ajax/delete_userdata.php
rename to upload/ajax/manage_user.php
index be18b4a34..3049a6d3a 100644
--- a/upload/ajax/delete_userdata.php
+++ b/upload/ajax/manage_user.php
@@ -6,55 +6,66 @@ global $userdata, $lang;
$mode = (string) $this->request['mode'];
$user_id = $this->request['user_id'];
-
+
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']);
-
- if ($user_id != 2 && $user_id != BOT_UID)
- {
- require(INC_DIR .'functions_admin.php');
+ if ($user_id != BOT_UID)
+ {
user_delete($user_id);
delete_user_sessions($user_id);
-
+
$this->response['info'] = $lang['USER_DELETED'];
}
else $this->ajax_die($lang['USER_DELETE_CSV']);
break;
-
- case 'delete_message':
+
+ 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_POSTS_CONFIRM']);
-
+ if (empty($this->request['confirmed'])) $this->prompt_for_confirm('Удалить все сообщения и все начатые юзером топики целиком?');
+
if (IS_ADMIN)
{
- require(INC_DIR .'functions_admin.php');
-
- post_delete('user', $user_id);
-
+ $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('Удалить все сообщения, кроме заглавных?');
+
+ 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']);
-
+
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 ($userdata['user_id'] == $user_id) $this->ajax_die($lang['USER_DEACTIVATE_ME']);
if (empty($this->request['confirmed'])) $this->prompt_for_confirm($lang['ACTIVATE_CONFIRM']);
-
+
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;
}
diff --git a/upload/templates/default/usercp_viewprofile.tpl b/upload/templates/default/usercp_viewprofile.tpl
index 6830ec335..e0ed064f7 100644
--- a/upload/templates/default/usercp_viewprofile.tpl
+++ b/upload/templates/default/usercp_viewprofile.tpl
@@ -92,9 +92,13 @@ $(document).ready(function(){
{action: "edit_user_profile", id: "u_up_release"}
{action: "edit_user_profile", id: "u_up_bonus"}
-
-
+
{L_VIEWING_PROFILE}
@@ -211,7 +215,8 @@ $(document).ready(function(){
{USER_REGDATE}
- [ {L_USER_DEACTIVATE}{L_USER_ACTIVATE} ]
+ [ {L_USER_DEACTIVATE}{L_USER_ACTIVATE} ]
+ [ {L_USER_DELETE_EXPLAIN} ]
|
@@ -237,23 +242,16 @@ $(document).ready(function(){
-
+
- [ {L_USER_DELETE_EXPLAIN} ]
- [ {L_DELETE_USER_POSTS} ]
-
-
+ [ топики целиком ]
+ [ все, кроме заглавных ]
|
-
+
{L_LOCATION}: |
@@ -383,7 +381,7 @@ $(document).ready(function(){
) / {L_DOWNLOADED} {DOWN_TOTAL}
-
+