User Preferences");
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 '';
} 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 '
';
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("
");
?>