User Preferences"); if ($_SESSION['userlevel'] == 11) { demo_account(); } else { if ($_POST['action'] == "changepass") { if (authenticate($_SESSION['username'],$_POST['old_pass'])) { if ($_POST['new_pass'] == "" || $_POST['new_pass2'] == "") { $changepass_message = "Password must not be blank."; } elseif ($_POST['new_pass'] == $_POST['new_pass2']) { changepassword($_SESSION['username'],$_POST['new_pass']); $changepass_message = "Password Changed."; } else { $changepass_message = "Passwords don't match."; } } else { $changepass_message = "Incorrect password"; } } include("includes/update-preferences-password.inc.php"); echo("
"); if (passwordscanchange($_SESSION['username'])) { echo("

Change Password

"); echo($changepass_message); echo("
"); echo("
"); } if( $config['twofactor'] === true ) { if( $_POST['twofactorremove'] == 1 ) { require_once($config['install_dir']."/html/includes/authentication/twofactor.lib.php"); if( !isset($_POST['twofactor']) ) { echo '
'; echo ''; echo twofactor_form(false); echo '
'; } else{ $twofactor = dbFetchRow('SELECT twofactor FROM users WHERE username = ?', array($_SESSION['username'])); if( empty($twofactor['twofactor']) ) { echo '
Error: How did you even get here?!
'; } else { $twofactor = json_decode($twofactor['twofactor'],true); } if( verify_hotp($twofactor['key'],$_POST['twofactor'],$twofactor['counter']) ) { if( !dbUpdate(array('twofactor' => ''),'users','username = ?',array($_SESSION['username'])) ) { echo '
Error while disabling TwoFactor.
'; } else { echo '
TwoFactor Disabled.
'; } } else { session_destroy(); echo '
Error: Supplied TwoFactor Token is wrong, you\'ve been logged out.
'; } } } else { $twofactor = dbFetchRow("SELECT twofactor FROM users WHERE username = ?", array($_SESSION['username'])); echo ''; echo '

Two-Factor Authentication

'; if( !empty($twofactor['twofactor']) ) { $twofactor = json_decode($twofactor['twofactor'],true); $twofactor['text'] = "
"; if( $twofactor['counter'] !== false ) { $twofactor['uri'] = "otpauth://hotp/".$_SESSION['username']."?issuer=LibreNMS&counter=".$twofactor['counter']."&secret=".$twofactor['key']; $twofactor['text'] .= "
"; } else { $twofactor['uri'] = "otpauth://totp/".$_SESSION['username']."?issuer=LibreNMS&secret=".$twofactor['key']; } echo '
'; echo '
'.$twofactor['text'].'
'; echo ''; echo '
'; } else { if( isset($_POST['gentwofactorkey']) && isset($_POST['twofactortype']) ) { require_once($config['install_dir']."/html/includes/authentication/twofactor.lib.php"); $chk = dbFetchRow("SELECT twofactor FROM users WHERE username = ?", array($_SESSION['username'])); if( empty($chk['twofactor']) ) { $twofactor = array('key' => twofactor_genkey()); if( $_POST['twofactortype'] == "counter" ) { $twofactor['counter'] = 1; } else { $twofactor['counter'] = false; } if( !dbUpdate(array('twofactor' => json_encode($twofactor)),'users','username = ?',array($_SESSION['username'])) ) { echo '
Error inserting TwoFactor details. Please try again later and contact Administrator if error persists.
'; } else { echo '
Added TwoFactor credentials. Please reload page.
'; } } else { echo '
TwoFactor credentials already exists.
'; } } else { echo '
'; } } echo '
'; } } } echo("
"); echo("
Device Permissions
"); if ($_SESSION['userlevel'] == '10') { echo("Global Administrative Access"); } if ($_SESSION['userlevel'] == '5') { echo("Global Viewing Access"); } if ($_SESSION['userlevel'] == '1') { foreach (dbFetchRows("SELECT * FROM `devices_perms` AS P, `devices` AS D WHERE `user_id` = ? AND P.device_id = D.device_id", array($_SESSION['user_id'])) as $perm) { #FIXME generatedevicelink? echo("" . $perm['hostname'] . "
"); $dev_access = 1; } if (!$dev_access) { echo("No access!"); } } echo("
"); ?>