Seite 1 von 1

Benutzeraccount löschen

Verfasst: 05.03.2004 15:18
von Dark Night
Gibt es eigendlich einen Mod wo sich jeder User aus freien Stücken Löschen kann ohne das ein Administrator dies tun muss???

Verfasst: 05.03.2004 22:39
von Mario Siebert
Ja dafür gibts ne Mod allerdings fürs 2.0.0 ka ob der im 2.0.6 noch läuft.
User Self Deletion hat geschrieben: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);
}
HTH

Mario

Verfasst: 06.03.2004 09:01
von Dark Night
Funkt einwandfrei in der 2.0.6er version ich danke dir :-)


Habe ein paar geringfügige änderrungen vorgenommen *fg*

Finde:

Code: Alles auswählen

"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">')
);
} 

und ersetzte mit:

Code: Alles auswählen

"L_DELETE_ME" => "Dein Account Löschen",
"L_DELETE_ME_INFO" => 'Um deinen Account unwiderruflich zu Löschen Aktiviere die <b>"Checkbox"</b> und wähle mit dem Pulldownmenü <b>"Ja Löschen"</b>.',
"S_DELETE_ME" => '<table width="400" border="0" cellspacing="0" cellpadding="0">
  <tr> 
    <td width="120" class="row2"><span class="gensmall"><b>Checkbox:</b></span></td>
    <td width="280" class="row2"><span class="gensmall"><input type="checkbox" name="deleteme"></span></td>
  </tr>
  <tr> 
    <td class="row2"><span class="gensmall"><b>Pulldownmen&uuml;:</b></span></td>
    <td class="row2"><span class="gensmall"><select name="deleteme_confirm">
	<option value="NO" selected>Blosnicht</option>
	<option value="YES">Ja Löschen</option>
</select></span></td>
  </tr>
  <tr> 
    <td colspan="2" class="row2"><font color="#ff0000"><b>ACHTUNG DIE LÖSCHUNG IST ENDGÜLTIG!</b></font></td>
  </tr>
</table>')
);
}

MFG
Dark