2020-12-26 01:42:23 +08:00
< ? php
2021-01-13 19:32:26 +08:00
require " ../include/bittorrent.php " ;
2020-12-26 01:42:23 +08:00
dbconn ();
loggedinorreturn ();
// Reset Lost Password ACTION
if ( get_user_class () < UC_ADMINISTRATOR )
stderr ( " Error " , " Permission denied, Administrator Only. " );
if ( $_SERVER [ " REQUEST_METHOD " ] == " POST " )
{
$username = trim ( $_POST [ " username " ]);
$newpassword = trim ( $_POST [ " newpassword " ]);
$newpasswordagain = trim ( $_POST [ " newpasswordagain " ]);
2021-06-13 20:53:14 +08:00
2020-12-26 01:42:23 +08:00
if ( empty ( $username ) || empty ( $newpassword ) || empty ( $newpasswordagain ))
stderr ( " Error " , " Don't leave any fields blank. " );
if ( $newpassword != $newpasswordagain )
stderr ( " Error " , " The passwords didn't match! Must've typoed. Try again. " );
if ( strlen ( $newpassword ) < 6 )
stderr ( " Error " , " Sorry, password is too short (min is 6 chars) " );
2021-06-13 20:53:14 +08:00
2020-12-26 01:42:23 +08:00
$res = sql_query ( " SELECT * FROM users WHERE username= " . sqlesc ( $username ) . " " ) or sqlerr ();
$arr = mysql_fetch_assoc ( $res );
2025-10-30 10:28:52 +07:00
if ( empty ( $arr )) {
stderr ( " Error " , " Sorry, that username doesn't exist. " );
}
2021-06-13 20:53:14 +08:00
if ( get_user_class () <= $arr [ 'class' ]) {
$log = " Password Reset For $username by { $CURUSER [ 'username' ] } denied: operator class => " . get_user_class () . " is not greater than target user => { $arr [ 'class' ] } " ;
write_log ( $log );
do_log ( $log , 'alert' );
stderr ( " Error " , " Sorry, you don't have enough permission to reset this user's password. " );
}
2020-12-26 01:42:23 +08:00
$id = $arr [ 'id' ];
2025-10-30 10:28:52 +07:00
//$wantpassword=$newpassword;
//$secret = mksecret();
//$wantpasshash = md5($secret . $wantpassword . $secret);
//sql_query("UPDATE users SET passhash=".sqlesc($wantpasshash).", secret= ".sqlesc($secret)." where id=$id");
$userRep = new \App\Repositories\UserRepository ();
2025-10-30 11:29:00 +07:00
try {
$userRep -> resetPassword ( $id , $newpassword , $newpasswordagain );
} catch ( \Exception $e ) {
stderr ( 'Error' , $e -> getMessage ());
}
2021-06-13 20:53:14 +08:00
write_log ( " Password Reset For $username by { $CURUSER [ 'username' ] } " );
2020-12-26 01:42:23 +08:00
if ( mysql_affected_rows () != 1 )
stderr ( " Error " , " Unable to RESET PASSWORD on this account. " );
stderr ( " Success " , " The password of account <b> $username </b> is reset , please inform user of this change. " , false );
}
stdhead ( " Reset User's Lost Password " );
?>
<table border=1 cellspacing=0 cellpadding=5>
<form method=post>
<tr><td class=colhead align="center" colspan=2>Reset User's Lost Password</td></tr>
<tr><td class=rowhead align="right">User Name:</td><td class=rowfollow><input size=40 name=username></td></tr>
<tr><td class=rowhead align="right">New Password:</td><td class=rowfollow><input type="password" size=40 name=newpassword><br /><font class=small>Minimum is 6 characters</font></td></tr>
<tr><td class=rowhead align="right">Confirm New Password:</td><td class=rowfollow><input type="password" size=40 name=newpasswordagain></td></tr>
<tr><td class=toolbox colspan=2 align="center"><input type=submit class=btn value='Reset'></td></tr>
</form>
</table>
<?php
stdfoot();