Seite 1 von 1
Accounts selber löschen oder deaktivieren
Verfasst: 27.05.2004 11:20
von Rafterman
gibt es einen mod oder hack der es den Usern erlaubt ihren eigenen Account selbst zu löschen, oder vielleicht nur zu deaktivieren???
Deaktivieeren hat vieleicht denn vorteil das der User, wenn er sich doch wieder anmeldet, nicht alle Postings verloren hat.
gruß Rafterman
Verfasst: 27.05.2004 11:48
von rabbit
wurde mal irgendwann hier gepostet, kann den thread aber nicht mehr finden, daher:
Code: Alles auswählen
Open:
templates/xxx/profile_add_body.tpl
Find:
Code:
<input type="password" class="post" style="width: 200px" name="password_confirm" size="25" maxlength="100" value="{PASSWORD_CONFIRM}" />
</td>
</tr>
After add:
Code:
<!-- BEGIN deletemerow -->
<tr>
<td class="row1"><span class="gen">{deletemerow.L_DELETE_ME}: </span><br />
<span class="gensmall">{deletemerow.L_DELETE_ME_INFO}</span></td>
<td class="row2">{deletemerow.S_DELETE_ME}</td>
</tr>
<!-- END deletemerow -->
Open:
profile.php
Find:
Code:
$mode = ( isset($HTTP_GET_VARS['mode']) ) ? $HTTP_GET_VARS['mode'] : $HTTP_POST_VARS['mode'];
After add:
Code:
if( isset($HTTP_GET_VARS['deleteme']) || isset($HTTP_POST_VARS['deleteme']) )
{
$mode = 'deleteme';
}
if ( $mode == "editprofile" )
{
$template->assign_block_vars("deletemerow", array(
"L_DELETE_ME" => "Delete Your Account",
"L_DELETE_ME_INFO" => "Check the box and type YES (all capital letters) in the other box. This can not be undone!",
"S_DELETE_ME" => '<input type="checkbox" name="deleteme">&&<input type="text" size="3" maxlength="3" name="deleteme_confirm" value="NO">')
);
}
Find:
Code:
else if ( $mode == 'email' )
{
include($phpbb_root_path . 'includes/usercp_email.'.$phpEx);
exit;
After add:
Code:
} else if( $mode == "deleteme" )
{
$clear_confirm = ( isset($HTTP_POST_VARS['deleteme_confirm']) ) ? $HTTP_POST_VARS['deleteme_confirm'] : $HTTP_GET_VARS['deleteme_confirm'];
if ($clear_confirm == 'YES')
{
$sql = "SELECT g.group_id
FROM " . USER_GROUP_TABLE . " ug, " . GROUPS_TABLE . " g
WHERE ug.user_id = " . $userdata['user_id'] . "
AND g.group_id = ug.group_id
AND g.group_single_user = 1";
if( !$result = $db->sql_query($sql) )
{
message_die(GENERAL_ERROR, "Couldn't obtain group information for this user", "", __LINE__, __FILE__, $sql);
}
$row = $db->sql_fetchrow($result);
$sql = "SELECT user_id FROM " . USERS_TABLE . " WHERE user_id = '" . $user_id . "'";
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not get user information', '', __LINE, __FILE__, $sql);
}
$xrow = $db->sql_fetchrow($xresult);
$sql = "UPDATE " . POSTS_TABLE . "
SET poster_id = '-1', post_username = '" . $userdata['username'] . "'
WHERE poster_id = " . $userdata['user_id'];
if( $result = $db->sql_query($sql) )
{
$sql = "UPDATE " . TOPICS_TABLE . "
SET topic_poster = '-1'
WHERE topic_poster = " . $userdata['user_id'];
if( $result = $db->sql_query($sql) )
{
$sql = "DELETE FROM " . USERS_TABLE . "
WHERE user_id = " . $userdata['user_id'];
if( $result = $db->sql_query($sql) )
{
$sql = "DELETE FROM " . USER_GROUP_TABLE . "
WHERE user_id = " . $userdata['user_id'];
if( $result = $db->sql_query($sql) )
{
$sql = "DELETE FROM " . GROUPS_TABLE . "
WHERE group_id = " . $row['group_id'];
if( $result = $db->sql_query($sql) )
{
$sql = "DELETE FROM " . TOPICS_WATCH_TABLE . "
WHERE user_id = " . $userdata['user_id'];
$result = @$db->sql_query($sql);
}
else
{
$error = TRUE;
}
}
else
{
$error = TRUE;
}
}
else
{
$error = TRUE;
}
}
else
{
$error = TRUE;
}
}
else
{
$error = TRUE;
}
if( $error == TRUE )
{
message_die(GENERAL_MESSAGE, "Error deleting your account.");
}
else
{
message_die(GENERAL_MESSAGE, "Your account deleted.");
}
}
else
{
$message = $lang['Profile_updated'] . '<br /><br />' . sprintf($lang['Click_return_index'], '<a href="' . append_sid("index.$phpEx") . '">', '</a>');
message_die(GENERAL_MESSAGE, $message);
}
damit können sich user selbst löschen...
