refactor: edituser page to allow user selection of a default dashboard (#4551)

This commit is contained in:
jonathon-k
2016-10-11 00:27:20 -06:00
committed by Neil Lathwood
parent 0bb7bfde9e
commit 7d3cafddba

View File

@@ -262,9 +262,18 @@ if ($_SESSION['userlevel'] != '10') {
} }
} }
if (can_update_users() == '1') {
$users_details = get_user($vars['user_id']); $users_details = get_user($vars['user_id']);
if (!empty($users_details)) { 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'])) { if (empty($vars['new_realname'])) {
$vars['new_realname'] = $users_details['realname']; $vars['new_realname'] = $users_details['realname'];
} }
@@ -283,35 +292,7 @@ if ($_SESSION['userlevel'] != '10') {
$vars['new_email'] = $users_details['email']; $vars['new_email'] = $users_details['email'];
} }
if ($config['twofactor']) { echo "
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'>
<div class='form-group'> <div class='form-group'>
<label for='new_realname' class='col-sm-2 control-label'>Realname</label> <label for='new_realname' class='col-sm-2 control-label'>Realname</label>
<div class='col-sm-4'> <div class='col-sm-4'>
@@ -370,18 +351,6 @@ if ($_SESSION['userlevel'] != '10') {
</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>
";
echo "<div class='form-group'> echo "<div class='form-group'>
<div class='col-sm-6'> <div class='col-sm-6'>
@@ -397,9 +366,41 @@ if ($_SESSION['userlevel'] != '10') {
<div class='col-sm-6'> <div class='col-sm-6'>
</div> </div>
</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> <button type='submit' class='btn btn-default'>Update User</button>
</form>"; </form>";
if ($config['twofactor']) { 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>"; echo "<br/><div class='well'><h3>Two-Factor Authentication</h3>";
$twofactor = dbFetchRow('SELECT twofactor FROM users WHERE user_id = ?', array($vars['user_id'])); $twofactor = dbFetchRow('SELECT twofactor FROM users WHERE user_id = ?', array($vars['user_id']));
$twofactor = json_decode($twofactor['twofactor'], true); $twofactor = json_decode($twofactor['twofactor'], true);
@@ -429,10 +430,7 @@ if ($_SESSION['userlevel'] != '10') {
}//end if }//end if
} else { } else {
print_error('Error getting user details'); print_error('Error getting user details');
}//end if }//end if !empty($users_details)
} else {
print_error("Authentication method doesn't support updating users");
}//end if
}//end if }//end if
} else { } else {
$user_list = get_userlist(); $user_list = get_userlist();