Merge pull request #87 from DanWin/forgotten-password
Add password reset for super admin
This commit is contained in:
31
chat.php
31
chat.php
@ -146,6 +146,8 @@ function route(){
|
|||||||
send_admin(route_admin());
|
send_admin(route_admin());
|
||||||
}elseif($_REQUEST['action']==='setup'){
|
}elseif($_REQUEST['action']==='setup'){
|
||||||
route_setup();
|
route_setup();
|
||||||
|
}elseif($_REQUEST['action']==='sa_password_reset'){
|
||||||
|
send_sa_password_reset();
|
||||||
}else{
|
}else{
|
||||||
send_login();
|
send_login();
|
||||||
}
|
}
|
||||||
@ -922,9 +924,35 @@ function send_alogin(){
|
|||||||
echo "<tr><td>$I[pass]</td><td><input type=\"password\" name=\"pass\" size=\"15\"></td></tr>";
|
echo "<tr><td>$I[pass]</td><td><input type=\"password\" name=\"pass\" size=\"15\"></td></tr>";
|
||||||
send_captcha();
|
send_captcha();
|
||||||
echo '<tr><td colspan="2">'.submit($I['login']).'</td></tr></table></form>';
|
echo '<tr><td colspan="2">'.submit($I['login']).'</td></tr></table></form>';
|
||||||
|
echo '<br><a href="?action=sa_password_reset">'.$I['forgotlogin'].'</a><br>';
|
||||||
echo "<p id=\"changelang\">$I[changelang]";
|
echo "<p id=\"changelang\">$I[changelang]";
|
||||||
foreach($L as $lang=>$name){
|
foreach($L as $lang=>$name){
|
||||||
echo " <a href=\"$_SERVER[SCRIPT_NAME]?action=setup&lang=$lang\">$name</a>";
|
echo " <a href=\"?action=setup&lang=$lang\" hreflang=\"$lang\">$name</a>";
|
||||||
|
}
|
||||||
|
echo '</p>'.credit();
|
||||||
|
print_end();
|
||||||
|
}
|
||||||
|
|
||||||
|
function send_sa_password_reset(){
|
||||||
|
global $I, $L, $db;
|
||||||
|
print_start('sa_password_reset');
|
||||||
|
echo "<h1>$I[resetpassword]</h1>";
|
||||||
|
if(defined('RESET_SUPERADMIN_PASSWORD') && !empty(RESET_SUPERADMIN_PASSWORD)){
|
||||||
|
$stmt = $db->query('SELECT nickname FROM ' . PREFIX . 'members WHERE status = 8 LIMIT 1;');
|
||||||
|
if($user = $stmt->fetch(PDO::FETCH_ASSOC)){
|
||||||
|
$mem_update = $db->prepare('UPDATE ' . PREFIX . 'members SET passhash = ? WHERE nickname = ? LIMIT 1;');
|
||||||
|
$mem_update->execute([password_hash(RESET_SUPERADMIN_PASSWORD, PASSWORD_DEFAULT), $user['nickname']]);
|
||||||
|
$sess_delete = $db->prepare('DELETE FROM ' . PREFIX . 'sessions WHERE nickname = ?;');
|
||||||
|
$sess_delete->execute([$user['nickname']]);
|
||||||
|
printf("<p>$I[resetsucc]</p>", $user['nickname']);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
echo "<p>$I[resetinstruction]</p>";
|
||||||
|
}
|
||||||
|
echo "<a href=\"?action=setup\">$I[backtosetup]</a>";
|
||||||
|
echo "<p id=\"changelang\">$I[changelang]";
|
||||||
|
foreach($L as $lang=>$name){
|
||||||
|
echo " <a href=\"?action=sa_password_reset&lang=$lang\" hreflang=\"$lang\">$name</a>";
|
||||||
}
|
}
|
||||||
echo '</p>'.credit();
|
echo '</p>'.credit();
|
||||||
print_end();
|
print_end();
|
||||||
@ -4265,4 +4293,5 @@ function load_config(){
|
|||||||
define('AES_IV', AES_IV_PASS);
|
define('AES_IV', AES_IV_PASS);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
//define('RESET_SUPERADMIN_PASSWORD', 'changeme'); //Use this to reset your superadmin password in case you forgot it
|
||||||
}
|
}
|
||||||
|
@ -366,5 +366,9 @@ $T=[
|
|||||||
'manualrefresh' => 'Manuelles Neuladen erforderlich',
|
'manualrefresh' => 'Manuelles Neuladen erforderlich',
|
||||||
'personalnotes' => 'Persönliche Notizen',
|
'personalnotes' => 'Persönliche Notizen',
|
||||||
'filtermodkick' => 'Kickfilter auf Moderatoren anwenden',
|
'filtermodkick' => 'Kickfilter auf Moderatoren anwenden',
|
||||||
|
'forgotlogin' => 'Zugangsdaten vergessen?',
|
||||||
|
'resetinstruction' => 'Bitte bearbeiten Sie das Skript und fügen Sie folgendes am Ende der Datei hinzu (und ändern Sie das Passwort "changeme"). Danach aktualisieren Sie die Seite bitte: define(\'RESET_SUPERADMIN_PASSWORD\', \'changeme\');',
|
||||||
|
'resetpassword' => 'Passwort zurücksetzen',
|
||||||
|
'resetsucc' => 'Passwort erfolgreich für Nutzer %s zurückgesetzt. Bitte entfernen Sie das Passwort zurücksetzen define wieder aus dem Skript.',
|
||||||
|
'Zurück zur Einrichtungsseite',
|
||||||
];
|
];
|
||||||
|
|
||||||
|
@ -366,5 +366,9 @@ $I=[
|
|||||||
'manualrefresh' => 'Manual refresh required',
|
'manualrefresh' => 'Manual refresh required',
|
||||||
'personalnotes' => 'Personal notes',
|
'personalnotes' => 'Personal notes',
|
||||||
'filtermodkick' => 'Apply kick filter on moderators',
|
'filtermodkick' => 'Apply kick filter on moderators',
|
||||||
|
'forgotlogin' => 'Forgot login?',
|
||||||
|
'resetinstruction' => 'Please modify the script and put the following at the bottom of it (change the password). Then refresh this page: define(\'RESET_SUPERADMIN_PASSWORD\', \'changeme\');',
|
||||||
|
'resetpassword' => 'Reset password',
|
||||||
|
'resetsucc' => 'Successfully reset password for username %s. Please remove the password reset define from the script again.',
|
||||||
|
'backtosetup' => 'Back to setup',
|
||||||
];
|
];
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user