Перенос деактивации юзера в Ajax git-svn-id: https://torrentpier2.googlecode.com/svn/trunk@286 a8ac35ab-4ca4-ca47-4c2d-a49a94f06293
This commit is contained in:
pherum83 2011-09-05 10:51:53 +00:00
commit 7f5443a08c
11 changed files with 92 additions and 76 deletions

View file

@ -450,48 +450,6 @@ class ajax_common
$datastore->rm('moderators'); $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 () function view_post ()
{ {
require(AJAX_DIR .'view_post.php'); require(AJAX_DIR .'view_post.php');
@ -526,5 +484,10 @@ class ajax_common
{ {
require(AJAX_DIR .'posts.php'); require(AJAX_DIR .'posts.php');
} }
function delete_userdata()
{
require(AJAX_DIR .'delete_userdata.php');
}
} }

View file

@ -0,0 +1,63 @@
<?php
if (!defined('IN_AJAX')) die(basename(__FILE__));
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');
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':
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']);
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 (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;
}
$this->response['mode'] = $mode;
$this->response['url'] = html_entity_decode(make_url('/') . PROFILE_URL . $user_id);

View file

@ -53,8 +53,8 @@ $bb_cfg = $tr_cfg = $page_cfg = array();
// Increase number of revision after update // Increase number of revision after update
$bb_cfg['tp_version'] = '2.1 Stable'; $bb_cfg['tp_version'] = '2.1 Stable';
$bb_cfg['tp_release_state'] = 'R284'; $bb_cfg['tp_release_state'] = 'R286';
$bb_cfg['tp_release_date'] = '04-09-2011'; $bb_cfg['tp_release_date'] = '05-09-2011';
// Database // Database
$charset = 'utf8'; $charset = 'utf8';

View file

@ -2829,8 +2829,8 @@ function profile_url($data)
if(isset($ranks[$user_rank])) if(isset($ranks[$user_rank]))
{ $title = $ranks[$user_rank]['rank_title']; $style = $ranks[$user_rank]['rank_style']; { $title = $ranks[$user_rank]['rank_title']; $style = $ranks[$user_rank]['rank_style'];
} }
if(empty($title)) $title = 'User'; if(empty($title)) $title = '';
if(empty($style)) $style = 'colorUser'; if(empty($style)) $style = '';
if(!$bb_cfg['color_nick']) $style = ''; if(!$bb_cfg['color_nick']) $style = '';

View file

@ -102,7 +102,6 @@ switch ($mode)
// field => can_edit // field => can_edit
$profile_fields = array( $profile_fields = array(
'user_active' => IS_ADMIN,
'username' => (IS_ADMIN || $bb_cfg['allow_namechange']), 'username' => (IS_ADMIN || $bb_cfg['allow_namechange']),
'user_password' => true, 'user_password' => true,
'user_email' => true, // должен быть после user_password 'user_email' => true, // должен быть после user_password
@ -195,19 +194,6 @@ foreach ($profile_fields as $field => $can_edit)
{ {
switch ($field) switch ($field)
{ /** { /**
* Активация (edit, reg)
*/
case 'user_active':
$active = isset($_POST['user_active']) ? (int) $_POST['user_active'] : $pr_data['user_active'];
if ($submit && $active != $pr_data['user_active'] && $adm_edit)
{
$pr_data['user_active'] = $active;
$db_data['user_active'] = $active;
}
$tp_data['USER_ACTIVE'] = $pr_data['user_active'];
break;
/**
* Имя (edit, reg) * Имя (edit, reg)
*/ */
case 'username': case 'username':
@ -528,11 +514,10 @@ foreach ($profile_fields as $field => $can_edit)
$skype = isset($_POST['user_skype']) ? (string) $_POST['user_skype'] : $pr_data['user_skype']; $skype = isset($_POST['user_skype']) ? (string) $_POST['user_skype'] : $pr_data['user_skype'];
if ($submit && $skype != $pr_data['user_skype']) if ($submit && $skype != $pr_data['user_skype'])
{ {
if (!preg_match("#^[a-zA-Z0-9_.\-@,]{6,32}$#", $skype)) if ($skype != '' && !preg_match("#^[a-zA-Z0-9_.\-@,]{6,32}$#", $skype))
{ {
$errors[] = $lang['SKYPE_ERROR']; $errors[] = $lang['SKYPE_ERROR'];
} }
$pr_data['user_skype'] = $skype; $pr_data['user_skype'] = $skype;
$db_data['user_skype'] = (string) $skype; $db_data['user_skype'] = (string) $skype;
} }

View file

@ -384,7 +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['ADMIN_USER_UPDATED'] = 'The user\'s profile was successfully updated.';
$lang['CLICK_RETURN_USERADMIN'] = 'Click %sHere%s to return to User Administration'; $lang['CLICK_RETURN_USERADMIN'] = 'Click %sHere%s to return to User Administration';
$lang['USER_STATUS'] = 'User is active';
$lang['USER_ALLOWPM'] = 'Can send Private Messages'; $lang['USER_ALLOWPM'] = 'Can send Private Messages';
$lang['USER_ALLOWAVATAR'] = 'Can display avatar'; $lang['USER_ALLOWAVATAR'] = 'Can display avatar';

View file

@ -1600,6 +1600,14 @@ $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['DELETE_USER_POSTS_CONFIRM'] = 'Are you sure you want to delete all of your users?';
$lang['USER_DELETED_POSTS'] = 'Posts were successfully removed'; $lang['USER_DELETED_POSTS'] = 'Posts were successfully removed';
$lang['USER_ACTIVATE'] = 'Activate';
$lang['USER_DEACTIVATE'] = 'Deactivate';
$lang['DEACTIVATE_CONFIRM'] = 'Are you sure you want to enable this user?';
$lang['USER_ACTIVATE_ON'] = 'User has successfully activated';
$lang['USER_DEACTIVATE_ME'] = 'You can not deactivate my account!';
$lang['ACTIVATE_CONFIRM'] = 'Are you sure you want to disable this user?';
$lang['USER_ACTIVATE_OFF'] = 'User successfully deactivated';
// Register // Register
$lang['CHOOSE_A_NAME'] = 'You should choose a name'; $lang['CHOOSE_A_NAME'] = 'You should choose a name';
$lang['CHOOSE_E_MAIL'] = 'You must specify the e-mail'; $lang['CHOOSE_E_MAIL'] = 'You must specify the e-mail';

View file

@ -384,7 +384,6 @@ $lang['ADMIN_USER_FAIL'] = 'Не могу изменить профиль пол
$lang['ADMIN_USER_UPDATED'] = 'Профиль пользователя был успешно изменён'; $lang['ADMIN_USER_UPDATED'] = 'Профиль пользователя был успешно изменён';
$lang['CLICK_RETURN_USERADMIN'] = '%sВернуться к управлению пользователями%s'; $lang['CLICK_RETURN_USERADMIN'] = '%sВернуться к управлению пользователями%s';
$lang['USER_STATUS'] = 'Пользователь активен';
$lang['USER_ALLOWPM'] = 'Может посылать личные сообщения'; $lang['USER_ALLOWPM'] = 'Может посылать личные сообщения';
$lang['USER_ALLOWAVATAR'] = 'Может показывать аватару'; $lang['USER_ALLOWAVATAR'] = 'Может показывать аватару';

View file

@ -1606,6 +1606,14 @@ $lang['DELETE_USER_POSTS_ME'] = 'Вы действительно хотите у
$lang['DELETE_USER_POSTS_CONFIRM'] = 'Вы действительно хотите удалить все свои пользователя?'; $lang['DELETE_USER_POSTS_CONFIRM'] = 'Вы действительно хотите удалить все свои пользователя?';
$lang['USER_DELETED_POSTS'] = 'Сообщения успешно удалены'; $lang['USER_DELETED_POSTS'] = 'Сообщения успешно удалены';
$lang['USER_ACTIVATE'] = 'Активировать';
$lang['USER_DEACTIVATE'] = 'Деактивировать';
$lang['DEACTIVATE_CONFIRM'] = 'Вы действительно хотите активировать этого пользователя?';
$lang['USER_ACTIVATE_ON'] = 'Пользователь успешно активирован';
$lang['USER_DEACTIVATE_ME'] = 'Вы не можете деактивировать свой аккаунт!';
$lang['ACTIVATE_CONFIRM'] = 'Вы действительно хотите деактивировать этого пользователя?';
$lang['USER_ACTIVATE_OFF'] = 'Пользователь успешно деактивирован';
// Регистрация // Регистрация
$lang['CHOOSE_A_NAME'] = 'Вы должны выбрать имя'; $lang['CHOOSE_A_NAME'] = 'Вы должны выбрать имя';
$lang['CHOOSE_E_MAIL'] = 'Вы должны указать e-mail'; $lang['CHOOSE_E_MAIL'] = 'Вы должны указать e-mail';

View file

@ -281,18 +281,6 @@ ajax.callback.posts = function(data){
</tr> </tr>
<!-- END switch_avatar_local_gallery --> <!-- END switch_avatar_local_gallery -->
<!-- END switch_avatar_block --> <!-- END switch_avatar_block -->
<!-- IF IS_ADMIN && ADM_EDIT -->
<tr>
<th colspan="2">{L_MANAGE_USER}</th>
</tr>
<tr>
<td>{L_USER_STATUS}</td>
<td>
<label><input type="radio" name="user_active" value="1" <!-- IF USER_ACTIVE -->checked="checked"<!-- ENDIF --> />{L_YES}</label>&nbsp;&nbsp;
<label><input type="radio" name="user_active" value="0" <!-- IF not USER_ACTIVE -->checked="checked"<!-- ENDIF --> />{L_NO}</label>
</td>
</tr>
<!-- ENDIF -->
<!-- ENDIF / EDIT_PROFILE --> <!-- ENDIF / EDIT_PROFILE -->
<!-- IF SHOW_REG_AGREEMENT --> <!-- IF SHOW_REG_AGREEMENT -->

View file

@ -210,6 +210,9 @@ $(document).ready(function(){
<th>{L_JOINED}:</th> <th>{L_JOINED}:</th>
<td id="user_regdate"> <td id="user_regdate">
<span class="editable bold">{USER_REGDATE}</span> <span class="editable bold">{USER_REGDATE}</span>
<!-- IF IS_ADMIN -->
[ <a href="#" onclick="ajax.exec({action : 'delete_userdata', mode: '<!-- IF USER_ACTIVE -->user_deactivate<!-- ELSE -->user_activate<!-- ENDIF -->', user_id : {PROFILE_USER_ID}}); return false;" class="<!-- IF USER_ACTIVE -->adm<!-- ELSE -->seed bold<!-- ENDIF -->"><!-- IF USER_ACTIVE -->{L_USER_DEACTIVATE}<!-- ELSE -->{L_USER_ACTIVATE}<!-- ENDIF --></a> ]
<!-- ENDIF -->
</td> </td>
</tr> </tr>
<tr> <tr>