diff --git a/upload/ajax.php b/upload/ajax.php
index 753306ffa..9c99b2447 100644
--- a/upload/ajax.php
+++ b/upload/ajax.php
@@ -63,6 +63,7 @@ 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'),
@@ -448,6 +449,48 @@ class ajax_common
unset($moderators, $mod);
$datastore->rm('moderators');
}
+
+ function delete_userdata()
+ {
+ global $userdata, $lang, $bb_cfg;
+ $mode = (string) $this->request['mode'];
+ $user_id = $this->request['user_id'];
+ if (!IS_ADMIN) $this->ajax_die($lang['NOT_ADMIN']);
+
+ if ($mode == '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');
+
+ user_delete($user_id);
+ delete_user_sessions($user_id);
+
+ $this->response['info'] = $lang['USER_DELETED'];
+ }
+ else $this->ajax_die($lang['USER_DELETE_CSV']);
+ }
+ if ($mode == '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)
+ {
+ require(INC_DIR .'functions_admin.php');
+
+ post_delete('user', $user_id);
+
+ $this->response['info'] = $lang['USER_DELETED_POSTS'];
+ }
+ else $this->ajax_die($lang['NOT_ADMIN']);
+ }
+
+ $this->response['mode'] = $mode;
+ $this->response['url'] = html_entity_decode(make_url('/') . PROFILE_URL . $user_id);
+ }
function view_post ()
{
diff --git a/upload/config.php b/upload/config.php
index f951f375d..d80c875dc 100644
--- a/upload/config.php
+++ b/upload/config.php
@@ -53,8 +53,8 @@ $bb_cfg = $tr_cfg = $page_cfg = array();
// Increase number of revision after update
$bb_cfg['tp_version'] = '2.1 Stable';
-$bb_cfg['tp_release_state'] = 'R278';
-$bb_cfg['tp_release_date'] = '02-09-2011';
+$bb_cfg['tp_release_state'] = 'R279';
+$bb_cfg['tp_release_date'] = '03-09-2011';
// Database
$charset = 'utf8';
diff --git a/upload/includes/ucp/usercp_register.php b/upload/includes/ucp/usercp_register.php
index e4a78bac4..b08b08321 100644
--- a/upload/includes/ucp/usercp_register.php
+++ b/upload/includes/ucp/usercp_register.php
@@ -842,32 +842,6 @@ if ($submit && !$errors)
*/
else
{
- // Удаление пользователя и сообщений для админа
- if ($userdata['user_id'] != $pr_data['user_id'] && IS_ADMIN)
- {
- require(INC_DIR .'functions_admin.php');
-
- $del_msg = false;
- if (!empty($_POST['delete_user']))
- {
- delete_user_sessions($pr_data['user_id']);
- user_delete($pr_data['user_id'], !empty($_POST['delete_user_posts']));
-
- if ($pr_data['user_level'] == MOD)
- {
- $datastore->update('moderators');
- }
-
- $del_msg .= $lang['USER_DELETED'];
- }
- if (!empty($_POST['delete_user_posts']))
- {
- post_delete('user', $pr_data['user_id']);
- $del_msg .= ($del_msg) ? '
'. $lang['USER_DELETED_POSTS'] : $lang['USER_DELETED_POSTS'];
- }
- if($del_msg) bb_die($del_msg);
- }
-
// если что-то было изменено
if ($db_data)
{
diff --git a/upload/language/lang_english/lang_admin.php b/upload/language/lang_english/lang_admin.php
index 3b409b5af..0ec79a259 100644
--- a/upload/language/lang_english/lang_admin.php
+++ b/upload/language/lang_english/lang_admin.php
@@ -384,12 +384,6 @@ $lang['ADMIN_USER_FAIL'] = 'Couldn\'t update the user\'s profile.';
$lang['ADMIN_USER_UPDATED'] = 'The user\'s profile was successfully updated.';
$lang['CLICK_RETURN_USERADMIN'] = 'Click %sHere%s to return to User Administration';
-$lang['USER_DELETE'] = 'Delete';
-$lang['USER_DELETE_EXPLAIN'] = 'Delete this user';
-$lang['USER_DELETED'] = 'User was successfully deleted';
-$lang['DELETE_USER_POSTS'] = 'Delete all user posts';
-$lang['USER_DELETED_POSTS'] = 'Posts were successfully removed';
-
$lang['USER_STATUS'] = 'User is active';
$lang['USER_ALLOWPM'] = 'Can send Private Messages';
$lang['USER_ALLOWAVATAR'] = 'Can display avatar';
diff --git a/upload/language/lang_english/lang_main.php b/upload/language/lang_english/lang_main.php
index 6c37da373..ff613dee0 100644
--- a/upload/language/lang_english/lang_main.php
+++ b/upload/language/lang_english/lang_main.php
@@ -1589,6 +1589,17 @@ $lang['SEND_MESSAGE'] = 'Send message';
$lang['EDIT_POST'] = 'Edit Post';
$lang['NEW_THREADS'] = 'New Threads';
+$lang['USER_DELETE'] = 'Delete';
+$lang['USER_DELETE_EXPLAIN'] = 'Delete this user';
+$lang['USER_DELETE_ME'] = 'Sorry, your account is forbidden to remove!';
+$lang['USER_DELETE_CSV'] = 'Sorry, this account is not allowed to delete!';
+$lang['USER_DELETE_CONFIRM'] = 'Are you sure you want to delete this user?';
+$lang['USER_DELETED'] = 'User was successfully deleted';
+$lang['DELETE_USER_POSTS'] = 'Delete all user posts';
+$lang['DELETE_USER_POSTS_ME'] = 'Are you sure you want to delete all my posts?';
+$lang['DELETE_USER_POSTS_CONFIRM'] = 'Are you sure you want to delete all of your users?';
+$lang['USER_DELETED_POSTS'] = 'Posts were successfully removed';
+
// Register
$lang['CHOOSE_A_NAME'] = 'You should choose a name';
$lang['CHOOSE_E_MAIL'] = 'You must specify the e-mail';
diff --git a/upload/language/lang_russian/lang_admin.php b/upload/language/lang_russian/lang_admin.php
index 9543d5802..18e6e9988 100644
--- a/upload/language/lang_russian/lang_admin.php
+++ b/upload/language/lang_russian/lang_admin.php
@@ -384,12 +384,6 @@ $lang['ADMIN_USER_FAIL'] = 'Не могу изменить профиль пол
$lang['ADMIN_USER_UPDATED'] = 'Профиль пользователя был успешно изменён';
$lang['CLICK_RETURN_USERADMIN'] = '%sВернуться к управлению пользователями%s';
-$lang['USER_DELETE'] = 'Удаление';
-$lang['USER_DELETE_EXPLAIN'] = 'Удалить этого пользователя';
-$lang['USER_DELETED'] = 'Пользователь был успешно удалён';
-$lang['DELETE_USER_POSTS'] = 'Удалить все сообщения пользователя';
-$lang['USER_DELETED_POSTS'] = 'Сообщения пользователя успешно удалены';
-
$lang['USER_STATUS'] = 'Пользователь активен';
$lang['USER_ALLOWPM'] = 'Может посылать личные сообщения';
$lang['USER_ALLOWAVATAR'] = 'Может показывать аватару';
diff --git a/upload/language/lang_russian/lang_main.php b/upload/language/lang_russian/lang_main.php
index 9c8866bee..8c8cf3f33 100644
--- a/upload/language/lang_russian/lang_main.php
+++ b/upload/language/lang_russian/lang_main.php
@@ -1595,6 +1595,16 @@ $lang['SEND_MESSAGE'] = 'Отправлять сообщения';
$lang['EDIT_POST'] = 'Редактировать сообщения';
$lang['NEW_THREADS'] = 'Создавать темы';
+$lang['USER_DELETE'] = 'Удаление';
+$lang['USER_DELETE_EXPLAIN'] = 'Удалить этого пользователя';
+$lang['USER_DELETE_ME'] = 'Извините, свой аккаунт запрещено удалять!';
+$lang['USER_DELETE_CSV'] = 'Извините, этот аккаунт запрещено удалять!';
+$lang['USER_DELETE_CONFIRM'] = 'Вы действительно хотите удалить этого пользователя?';
+$lang['USER_DELETED'] = 'Пользователь был успешно удалён';
+$lang['DELETE_USER_POSTS'] = 'Удалить все сообщения пользователя';
+$lang['DELETE_USER_POSTS_ME'] = 'Вы действительно хотите удалить все свои сообщения?';
+$lang['DELETE_USER_POSTS_CONFIRM'] = 'Вы действительно хотите удалить все свои пользователя?';
+$lang['USER_DELETED_POSTS'] = 'Сообщения успешно удалены';
// Регистрация
$lang['CHOOSE_A_NAME'] = 'Вы должны выбрать имя';
diff --git a/upload/templates/default/posting.tpl b/upload/templates/default/posting.tpl
index 1b3bbdead..62bf6ee94 100644
--- a/upload/templates/default/posting.tpl
+++ b/upload/templates/default/posting.tpl
@@ -105,7 +105,7 @@