";
$pagetitle[] = 'Edit user';
if ($_SESSION['userlevel'] != '10') {
include 'includes/error-no-perm.inc.php';
}
else {
if ($vars['user_id'] && !$vars['edit']) {
$user_data = dbFetchRow('SELECT * FROM users WHERE user_id = ?', array($vars['user_id']));
echo '
';
// Display devices this users has access to
echo '
Device Access
';
echo "
Device |
Action |
";
$device_perms = dbFetchRows('SELECT * from devices_perms as P, devices as D WHERE `user_id` = ? AND D.device_id = P.device_id', array($vars['user_id']));
foreach ($device_perms as $device_perm) {
echo ''.$device_perm['hostname']." | ![](images/16/cross.png) |
";
$access_list[] = $device_perm['device_id'];
$permdone = 'yes';
}
echo '
';
if (!$permdone) {
echo 'None Configured';
}
// Display devices this user doesn't have access to
echo '
Grant access to new device
';
echo "
";
echo "
";
echo '
Interface Access
';
$interface_perms = dbFetchRows('SELECT * from ports_perms as P, ports as I, devices as D WHERE `user_id` = ? AND I.port_id = P.port_id AND D.device_id = I.device_id', array($vars['user_id']));
echo "
Interface name |
Action |
";
foreach ($interface_perms as $interface_perm) {
echo '
'.$interface_perm['hostname'].' - '.$interface_perm['ifDescr'].''.''.$interface_perm['ifAlias']."
|
|
";
$ipermdone = 'yes';
}
echo '
';
if (!$ipermdone) {
echo 'None Configured';
}
// Display devices this user doesn't have access to
echo '
Grant access to new interface
';
echo "
";
echo "
";
echo '
Bill Access
';
$bill_perms = dbFetchRows('SELECT * from bills AS B, bill_perms AS P WHERE P.user_id = ? AND P.bill_id = B.bill_id', array($vars['user_id']));
echo "
Bill name |
Action |
";
foreach ($bill_perms as $bill_perm) {
echo '
'.$bill_perm['bill_name']." |
|
";
$bill_access_list[] = $bill_perm['bill_id'];
$bpermdone = 'yes';
}
echo '
';
if (!$bpermdone) {
echo 'None Configured';
}
// Display devices this user doesn't have access to
echo '
Grant access to new bill
';
echo "
";
}
else if ($vars['user_id'] && $vars['edit']) {
if ($_SESSION['userlevel'] == 11) {
demo_account();
}
else {
if (!empty($vars['new_level'])) {
if ($vars['can_modify_passwd'] == 'on') {
$vars['can_modify_passwd'] = '1';
}
update_user($vars['user_id'], $vars['new_realname'], $vars['new_level'], $vars['can_modify_passwd'], $vars['new_email']);
print_message('User has been updated');
if (!empty($vars['new_pass1']) && $vars['new_pass1'] == $vars['new_pass2'] && passwordscanchange($vars['cur_username'])) {
if (changepassword($vars['cur_username'],$vars['new_pass1']) == 1) {
print_message("User password has been updated");
}
else {
print_error("Password couldn't be updated");
}
}
elseif (!empty($vars['new_pass1']) && $vars['new_pass1'] != $vars['new_pass2']) {
print_error("The supplied passwords didn't match so weren't updated");
}
}
if (can_update_users() == '1') {
$users_details = get_user($vars['user_id']);
if (!empty($users_details)) {
if (empty($vars['new_realname'])) {
$vars['new_realname'] = $users_details['realname'];
}
if (empty($vars['new_level'])) {
$vars['new_level'] = $users_details['level'];
}
if (empty($vars['can_modify_passwd'])) {
$vars['can_modify_passwd'] = $users_details['can_modify_passwd'];
}
else if ($vars['can_modify_passwd'] == 'on') {
$vars['can_modify_passwd'] = '1';
}
if (empty($vars['new_email'])) {
$vars['new_email'] = $users_details['email'];
}
if ($config['twofactor']) {
if ($vars['twofactorremove']) {
if (dbUpdate(array('twofactor' => ''), users, 'user_id = ?', array($vars['user_id']))) {
echo "
TwoFactor credentials removed.
";
}
else {
echo "
Couldnt remove user's TwoFactor credentials.
";
}
}
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 "
User unlocked.
";
}
else {
echo "
Couldnt reset user's TwoFactor failures.
";
}
}
}
echo "
";
if ($config['twofactor']) {
echo "
Two-Factor Authentication
";
$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 "
";
}
if ($twofactor['key']) {
echo "
";
}
else {
echo '
No TwoFactor key generated for this user, Nothing to do.
';
}
}//end if
}
else {
echo print_error('Error getting user details');
}//end if
}
else {
echo print_error("Authentication method doesn't support updating users");
}//end if
}//end if
}
else {
$user_list = get_userlist();
echo '
Select a user to edit
';
echo "
";
}//end if
}//end if
echo '
';