Перенос удаления юзера и его сообщений в Ajax git-svn-id: https://torrentpier2.googlecode.com/svn/trunk@279 a8ac35ab-4ca4-ca47-4c2d-a49a94f06293
This commit is contained in:
pherum83 2011-09-03 01:44:50 +00:00
commit 8c3c7b3535
10 changed files with 83 additions and 49 deletions

View file

@ -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 ()
{

View file

@ -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';

View file

@ -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) ? '<br /><br />'. $lang['USER_DELETED_POSTS'] : $lang['USER_DELETED_POSTS'];
}
if($del_msg) bb_die($del_msg);
}
// если что-то было изменено
if ($db_data)
{

View file

@ -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';

View file

@ -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';

View file

@ -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'] = 'Может показывать аватару';

View file

@ -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'] = 'Вы должны выбрать имя';

View file

@ -105,7 +105,7 @@
<!-- END smilies_row -->
<!-- BEGIN switch_smilies_extra -->
<tr>
<td colspan="{S_SMILIES_COLSPAN}"><a href="{U_MORE_SMILIES}" onclick="window.open('{U_MORE_SMILIES}', '_phpbbsmilies', 'HEIGHT=400,resizable=yes,scrollbars=yes,WIDTH=450'); return false;" target="_phpbbsmilies" class="med">{L_MORE_EMOTICONS}</a></td>
<td colspan="{S_SMILIES_COLSPAN}"><a href="{U_MORE_SMILIES}" onclick="window.open('{U_MORE_SMILIES}', '_phpbbsmilies', 'HEIGHT=420,resizable=yes,scrollbars=yes,WIDTH=470'); return false;" target="_phpbbsmilies" class="med">{L_MORE_EMOTICONS}</a></td>
</tr>
<!-- END switch_smilies_extra -->
</table><!--/smilies-->

View file

@ -292,14 +292,6 @@ ajax.callback.posts = function(data){
<label><input type="radio" name="user_active" value="0" <!-- IF not USER_ACTIVE -->checked="checked"<!-- ENDIF --> />{L_NO}</label>
</td>
</tr>
<tr>
<td>{L_USER_DELETE}?</td>
<td>
<label><input type="checkbox" name="delete_user">{L_USER_DELETE_EXPLAIN}</label>
<br />
<label><input type="checkbox" name="delete_user_posts">{L_DELETE_USER_POSTS}</label>
</td>
</tr>
<!-- ENDIF -->
<!-- ENDIF / EDIT_PROFILE -->

View file

@ -230,9 +230,25 @@ $(document).ready(function(){
[ <a href="{U_SEARCH_USER}" class="med">{L_SEARCH_USER_POSTS}</a> ]
[ <a href="{U_SEARCH_TOPICS}" class="med">{L_SEARCH_USER_TOPICS}</a> ]
[ <a class="med" href={U_SEARCH_RELEASES}>{L_SEARCH_RELEASES}</a> ]
<!-- IF IS_ADMIN -->[ <a href="#" onclick="toggle_block('delete'); return false;" class="adm">{L_USER_DELETE}</a> ]<!-- ENDIF -->
</p>
</td>
</tr>
<tr id="delete" style="display: none;">
<td colspan="2" class="med tCenter">
[ <a href="#" onclick="ajax.exec({action : 'delete_userdata', mode: 'delete_profile', user_id : '{PROFILE_USER_ID}'}); return false;" class="adm">{L_USER_DELETE_EXPLAIN}</a> ]&nbsp;
[ <a href="#" onclick="ajax.exec({action : 'delete_userdata', mode: 'delete_message', user_id : '{PROFILE_USER_ID}'}); return false;" class="adm">{L_DELETE_USER_POSTS}</a> ]
<script type="text/javascript">
ajax.callback.delete_userdata = function(data) {
if(data.info) alert(data.info);
if(data.url) document.location.href = data.url;
};
</script>
</td>
</tr>
<!-- IF LOCATION -->
<tr>
<th class="vBottom">{L_LOCATION}:</th>