mirror of
https://github.com/librenms/librenms.git
synced 2024-10-07 16:52:45 +00:00
refactor: edituser page to allow user selection of a default dashboard (#4551)
This commit is contained in:
committed by
Neil Lathwood
parent
0bb7bfde9e
commit
7d3cafddba
@@ -262,9 +262,18 @@ if ($_SESSION['userlevel'] != '10') {
|
||||
}
|
||||
}
|
||||
|
||||
if (can_update_users() == '1') {
|
||||
$users_details = get_user($vars['user_id']);
|
||||
if (!empty($users_details)) {
|
||||
$users_details = get_user($vars['user_id']);
|
||||
if (!empty($users_details)) {
|
||||
if (!empty($vars['dashboard']) && $vars['dashboard'] != $users_details['dashboard']) {
|
||||
dbUpdate(array('dashboard'=>$vars['dashboard']), 'users', 'user_id = ?', array($vars['user_id']));
|
||||
print_message("User default dashboard updated");
|
||||
}
|
||||
echo "<form class='form-horizontal' role='form' method='post' action=''>
|
||||
<input type='hidden' name='user_id' value='".$vars['user_id']."'>
|
||||
<input type='hidden' name='cur_username' value='" . $users_details['username'] . "'>
|
||||
<input type='hidden' name='edit' value='yes'>
|
||||
";
|
||||
if (can_update_users() == '1') {
|
||||
if (empty($vars['new_realname'])) {
|
||||
$vars['new_realname'] = $users_details['realname'];
|
||||
}
|
||||
@@ -283,35 +292,7 @@ if ($_SESSION['userlevel'] != '10') {
|
||||
$vars['new_email'] = $users_details['email'];
|
||||
}
|
||||
|
||||
if ($config['twofactor']) {
|
||||
if ($vars['twofactorremove']) {
|
||||
if (dbUpdate(array('twofactor' => ''), users, 'user_id = ?', array($vars['user_id']))) {
|
||||
echo "<div class='alert alert-success'>TwoFactor credentials removed.</div>";
|
||||
} else {
|
||||
echo "<div class='alert alert-danger'>Couldnt remove user's TwoFactor credentials.</div>";
|
||||
}
|
||||
}
|
||||
|
||||
if ($vars['twofactorunlock']) {
|
||||
$twofactor = dbFetchRow('SELECT twofactor FROM users WHERE user_id = ?', array($vars['user_id']));
|
||||
$twofactor = json_decode($twofactor['twofactor'], true);
|
||||
$twofactor['fails'] = 0;
|
||||
if (dbUpdate(array('twofactor' => json_encode($twofactor)), users, 'user_id = ?', array($vars['user_id']))) {
|
||||
echo "<div class='alert alert-success'>User unlocked.</div>";
|
||||
} else {
|
||||
echo "<div class='alert alert-danger'>Couldnt reset user's TwoFactor failures.</div>";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!empty($vars['dashboard'])) {
|
||||
dbUpdate(array('dashboard'=>$vars['dashboard']), 'users', 'user_id = ?', array($vars['user_id']));
|
||||
}
|
||||
|
||||
echo "<form class='form-horizontal' role='form' method='post' action=''>
|
||||
<input type='hidden' name='user_id' value='".$vars['user_id']."'>
|
||||
<input type='hidden' name='cur_username' value='" . $users_details['username'] . "'>
|
||||
<input type='hidden' name='edit' value='yes'>
|
||||
echo "
|
||||
<div class='form-group'>
|
||||
<label for='new_realname' class='col-sm-2 control-label'>Realname</label>
|
||||
<div class='col-sm-4'>
|
||||
@@ -370,18 +351,6 @@ if ($_SESSION['userlevel'] != '10') {
|
||||
</div>
|
||||
";
|
||||
}
|
||||
echo "
|
||||
<div class='form-group'>
|
||||
<label for='dashboard' class='col-sm-2 control-label'>Dashboard</label>
|
||||
<div class='col-sm-4'><select class='form-control' name='dashboard'>";
|
||||
$defdash = dbFetchCell("SELECT dashboard FROM users WHERE user_id = ?", array($vars['user_id']));
|
||||
foreach (dbFetchRows("SELECT dashboards.*,users.username FROM `dashboards` INNER JOIN `users` ON users.user_id = dashboards.user_id WHERE (dashboards.access > 0 && dashboards.user_id != ?) || dashboards.user_id = ?", array($vars['user_id'],$vars['user_id'])) as $dash) {
|
||||
echo "<option value='".$dash['dashboard_id']."'".($defdash == $dash['dashboard_id'] ? ' selected' : '').">".$dash['username'].':'.$dash['dashboard_name']."</option>";
|
||||
}
|
||||
echo "</select>
|
||||
</div>
|
||||
</div>
|
||||
";
|
||||
|
||||
echo "<div class='form-group'>
|
||||
<div class='col-sm-6'>
|
||||
@@ -397,14 +366,46 @@ if ($_SESSION['userlevel'] != '10') {
|
||||
<div class='col-sm-6'>
|
||||
</div>
|
||||
</div>
|
||||
";
|
||||
}
|
||||
echo "
|
||||
<div class='form-group'>
|
||||
<label for='dashboard' class='col-sm-2 control-label'>Dashboard</label>
|
||||
<div class='col-sm-4'><select class='form-control' name='dashboard'>";
|
||||
$defdash = dbFetchCell("SELECT dashboard FROM users WHERE user_id = ?", array($vars['user_id']));
|
||||
foreach (dbFetchRows("SELECT dashboards.*,users.username FROM `dashboards` INNER JOIN `users` ON users.user_id = dashboards.user_id WHERE (dashboards.access > 0 && dashboards.user_id != ?) || dashboards.user_id = ?", array($vars['user_id'],$vars['user_id'])) as $dash) {
|
||||
echo "<option value='".$dash['dashboard_id']."'".($defdash == $dash['dashboard_id'] ? ' selected' : '').">".$dash['username'].':'.$dash['dashboard_name']."</option>";
|
||||
}
|
||||
echo "</select>
|
||||
</div>
|
||||
</div>
|
||||
<button type='submit' class='btn btn-default'>Update User</button>
|
||||
</form>";
|
||||
if ($config['twofactor']) {
|
||||
echo "<br/><div class='well'><h3>Two-Factor Authentication</h3>";
|
||||
$twofactor = dbFetchRow('SELECT twofactor FROM users WHERE user_id = ?', array($vars['user_id']));
|
||||
$twofactor = json_decode($twofactor['twofactor'], true);
|
||||
if ($twofactor['fails'] >= 3 && (!$config['twofactor_lock'] || (time() - $twofactor['last']) < $config['twofactor_lock'])) {
|
||||
echo "<form class='form-horizontal' role='form' method='post' action=''>
|
||||
|
||||
if ($config['twofactor']) {
|
||||
if ($vars['twofactorremove']) {
|
||||
if (dbUpdate(array('twofactor' => ''), users, 'user_id = ?', array($vars['user_id']))) {
|
||||
echo "<div class='alert alert-success'>TwoFactor credentials removed.</div>";
|
||||
} else {
|
||||
echo "<div class='alert alert-danger'>Couldnt remove user's TwoFactor credentials.</div>";
|
||||
}
|
||||
}
|
||||
|
||||
if ($vars['twofactorunlock']) {
|
||||
$twofactor = dbFetchRow('SELECT twofactor FROM users WHERE user_id = ?', array($vars['user_id']));
|
||||
$twofactor = json_decode($twofactor['twofactor'], true);
|
||||
$twofactor['fails'] = 0;
|
||||
if (dbUpdate(array('twofactor' => json_encode($twofactor)), users, 'user_id = ?', array($vars['user_id']))) {
|
||||
echo "<div class='alert alert-success'>User unlocked.</div>";
|
||||
} else {
|
||||
echo "<div class='alert alert-danger'>Couldnt reset user's TwoFactor failures.</div>";
|
||||
}
|
||||
}
|
||||
echo "<br/><div class='well'><h3>Two-Factor Authentication</h3>";
|
||||
$twofactor = dbFetchRow('SELECT twofactor FROM users WHERE user_id = ?', array($vars['user_id']));
|
||||
$twofactor = json_decode($twofactor['twofactor'], true);
|
||||
if ($twofactor['fails'] >= 3 && (!$config['twofactor_lock'] || (time() - $twofactor['last']) < $config['twofactor_lock'])) {
|
||||
echo "<form class='form-horizontal' role='form' method='post' action=''>
|
||||
<input type='hidden' name='user_id' value='".$vars['user_id']."'>
|
||||
<input type='hidden' name='edit' value='yes'>
|
||||
<div class='form-group'>
|
||||
@@ -413,26 +414,23 @@ if ($_SESSION['userlevel'] != '10') {
|
||||
<button type='submit' class='btn btn-default'>Unlock</button>
|
||||
</div>
|
||||
</form>";
|
||||
}
|
||||
}
|
||||
|
||||
if ($twofactor['key']) {
|
||||
echo "<form class='form-horizontal' role='form' method='post' action=''>
|
||||
if ($twofactor['key']) {
|
||||
echo "<form class='form-horizontal' role='form' method='post' action=''>
|
||||
<input type='hidden' name='user_id' value='".$vars['user_id']."'>
|
||||
<input type='hidden' name='edit' value='yes'>
|
||||
<input type='hidden' name='twofactorremove' value='1'>
|
||||
<button type='submit' class='btn btn-danger'>Disable TwoFactor</button>
|
||||
</form>
|
||||
</div>";
|
||||
} else {
|
||||
echo '<p>No TwoFactor key generated for this user, Nothing to do.</p>';
|
||||
}
|
||||
}//end if
|
||||
} else {
|
||||
print_error('Error getting user details');
|
||||
} else {
|
||||
echo '<p>No TwoFactor key generated for this user, Nothing to do.</p>';
|
||||
}
|
||||
}//end if
|
||||
} else {
|
||||
print_error("Authentication method doesn't support updating users");
|
||||
}//end if
|
||||
print_error('Error getting user details');
|
||||
}//end if !empty($users_details)
|
||||
}//end if
|
||||
} else {
|
||||
$user_list = get_userlist();
|
||||
|
||||
Reference in New Issue
Block a user