$entry, 'entity_type' => $vars['entity_type'], 'user_id' => $vars['user_id'], 'auth_mechanism' => $config['auth_mechanism'] ], 'entity_permissions'); } } } } // Generate new auth secret session_set_var('auth_secret', md5(strgen())); ?>

User Information

User ID
Username
Real Name
User Level '.$user_data['level_label'].''); ?>
Email
Description
User Source
 Edit User'; } ?>
'horizontal', //'userlevel' => 10, // Minimum user level for display form 'id' => 'user_edit', 'title' => 'Edit User: "' . escape_html($user_data['realname']) . '" ('. escape_html($user_data['username']) . ')', //'modal_args' => $modal_args, // modal specific options //'help' => 'This will delete the selected contact and any alert assocations.', //'class' => '', // Clean default box class (default for modals) //'url' => 'delhost/' ); //$form['fieldset']['body'] = array('class' => 'modal-body'); // Required this class for modal body! //$form['fieldset']['footer'] = array('class' => 'modal-footer'); // Required this class for modal footer! $form['row'][0]['user_id'] = array( 'type' => 'hidden', 'fieldset' => 'body', 'value' => $user_data['user_id']); $form['row'][0]['auth_secret'] = array( 'type' => 'hidden', 'fieldset' => 'body', 'value' => $_SESSION['auth_secret']); $form['row'][1]['new_realname'] = array( 'type' => 'text', 'fieldset' => 'body', 'name' => 'Real Name', 'width' => '80%', 'placeholder' => TRUE, 'value' => $user_data['realname']); $form['row'][2]['new_level'] = array( 'type' => 'select', 'fieldset' => 'body', 'name' => 'User Level', 'width' => '80%', 'subtext' => TRUE, 'values' => $GLOBALS['config']['user_level'], 'value' => $user_data['level_real']); $form['row'][3]['new_email'] = array( 'type' => 'text', 'fieldset' => 'body', 'name' => 'E-mail', 'width' => '80%', 'placeholder' => TRUE, 'value' => $user_data['email']); $form['row'][4]['new_descr'] = array( 'type' => 'text', 'fieldset' => 'body', 'name' => 'Description', 'width' => '80%', 'placeholder' => TRUE, 'value' => $user_data['descr']); $form['row'][5]['new_can_modify_passwd'] = array( 'type' => 'toggle', 'view' => 'toggle', 'fieldset' => 'body', 'placeholder' => 'Allow the user to change his password', 'value' => $user_data['can_modify_passwd']); $form['row'][8]['close'] = array( 'type' => 'submit', 'fieldset' => 'footer', 'div_class' => '', // Clean default form-action class! 'name' => 'Close', 'icon' => '', 'attribs' => array('data-dismiss' => 'modal', // dismiss modal 'aria-hidden' => 'true')); // do not sent any value $form['row'][9]['action'] = array( 'type' => 'submit', 'fieldset' => 'footer', 'div_class' => '', // Clean default form-action class! 'name' => 'Save Changes', 'icon' => 'icon-ok icon-white', //'right' => TRUE, 'class' => 'btn-primary', //'disabled' => TRUE, 'value' => 'change_user'); echo generate_form_modal($form); unset($form); } // end edit user modal if (auth_usermanagement()) { // begin change password $form = array('type' => 'horizontal', //'space' => '10px', 'title' => 'Change Password', 'icon' => $config['icon']['lock'], //'class' => 'box box-solid', 'fieldset' => array('change_password' => '')); //'fieldset' => array('change_password' => 'Change Password')); $form['row'][0]['action'] = array( 'type' => 'hidden', 'value' => 'changepass'); $form['row'][1]['auth_secret'] = array( 'type' => 'hidden', 'value' => $_SESSION['auth_secret']); $form['row'][2]['new_pass'] = array( 'type' => 'password', 'fieldset' => 'change_password', // Group by fieldset 'name' => 'New Password', 'width' => '95%', 'value' => ''); $form['row'][3]['new_pass2'] = array( 'type' => 'password', 'fieldset' => 'change_password', // Group by fieldset 'name' => 'Retype Password', 'width' => '95%', 'value' => ''); $form['row'][10]['submit'] = array( 'type' => 'submit', 'name' => 'Update Password', 'icon' => $config['icon']['lock'], 'right' => TRUE, 'value' => 'save'); echo('
' . PHP_EOL); print_form($form); unset($form, $i); echo('
' . PHP_EOL); } // end change password ?>
TRUE, 'title' => 'Role Membership')); $role_membership = dbFetchRows("SELECT * FROM `roles_users` LEFT JOIN `roles` USING (`role_id`) WHERE `user_id` = ? AND `auth_mechanism` = ? ORDER BY `role_name`", [ $user_data['user_id'], $config['auth_mechanism'] ]); $users = dbFetchRows("SELECT * FROM `users`"); $role_list = []; if (!safe_empty($role_membership)) { echo '
'; echo(''); $cols = array( array('', 'class="state-marker"'), 'username' => array('Name', 'style="width: 200px;"'), 'email' => array('Users', 'style="width: 80px;"'), 'level' => 'Description', ); //echo(get_table_header($cols)); foreach ($role_membership as $role) { echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; $role_list[] = $role['role_id']; } echo('
' . escape_html($role['role_name']) . '' . escape_html($role['role_descr']) . ''; $form = array('type' => 'simple'); // Elements $form['row'][0]['auth_secret'] = array( 'type' => 'hidden', 'value' => $_SESSION['auth_secret']); $form['row'][0]['role_id'] = array('type' => 'hidden', 'value' => $role['role_id']); $form['row'][0]['action'] = array('type' => 'hidden', 'value' => 'role_user_del'); $form['row'][0]['submit'] = array('type' => 'submit', 'name' => ' ', 'class' => 'btn-danger btn-mini', 'icon' => 'icon-trash', 'value' => 'role_user_del'); print_form($form); unset($form); echo '
'); } else { echo('

This user currently has no role memberships

'); } $form = array('type' => 'simple', 'style' => 'padding: 7px; margin: 0px;', //'submit_by_key' => TRUE, //'url' => generate_url($vars) ); // Elements $form['row'][0]['auth_secret'] = array('type' => 'hidden', 'value' => $_SESSION['auth_secret']); $form['row'][0]['user_id'] = array('type' => 'hidden', 'value' => $user_data['user_id']); $form['row'][0]['action'] = array('type' => 'hidden', 'value' => 'role_user_add'); $form_items['users'] = array(); $roles = dbFetchRows("SELECT * FROM `roles`"); foreach ($roles as $role) { if (!in_array($role['role_id'], $role_list)) { $form_items['roles'][$role['role_id']] = array('name' => escape_html($role['role_name']), 'descr' => escape_html($role['role_descr'])); } } $form['row'][0]['role_id'] = array('type' => 'multiselect', 'name' => 'Add Role', 'width' => '250px', 'values' => $form_items['roles']); // add button $form['row'][0]['Submit'] = array('type' => 'submit', 'name' => 'Add', 'icon' => $config['icon']['plus'], 'right' => TRUE, 'value' => 'Add'); print_form($form); unset($form); echo generate_box_close(); ?> TRUE, 'pagination' => FALSE))); ?>
TRUE, 'title' => 'Global Permissions')); echo('

'.$user_data['subtext'].'

'); echo generate_box_close(); //print_error($user_data['subtext']); //} else { // if user has access and not has read/secure read/edit use individual permissions //echo generate_box_open(); //} // Always display (and edit permissions) also if user disabled or has global read or admin permissions // Cache user permissions foreach (dbFetchRows("SELECT * FROM `entity_permissions` WHERE `user_id` = ? AND `auth_mechanism` = ?", [ $vars['user_id'], $config['auth_mechanism'] ]) as $entity) { $user_permissions[$entity['entity_type']][$entity['entity_id']] = TRUE; } // Start bill Permissions if (isset($config['enable_billing']) && $config['enable_billing']) { echo generate_box_open(array('header-border' => TRUE, 'title' => 'Bill Permissions')); if (!safe_empty($user_permissions['bill'])) { echo('' . PHP_EOL); foreach ($user_permissions['bill'] as $bill_id => $status) { $bill = get_bill_by_id($bill_id); echo(''); } echo('
'.$bill['bill_name'].' ' . $bill['bill_type'] . ' '); $form = array('type' => 'simple', //'submit_by_key' => TRUE, //'url' => generate_url($vars) ); // Elements $form['row'][0]['auth_secret'] = array( 'type' => 'hidden', 'value' => $_SESSION['auth_secret']); $form['row'][0]['entity_id'] = array('type' => 'hidden', 'value' => $bill['bill_id']); $form['row'][0]['entity_type'] = array('type' => 'hidden', 'value' => 'bill'); $form['row'][0]['submit'] = array('type' => 'submit', 'name' => ' ', 'class' => 'btn-danger btn-mini', 'icon' => 'icon-trash', 'value' => 'user_perm_del'); print_form($form); unset($form); echo('
' . PHP_EOL); } else { echo('

This user currently has no permitted bills

'); //print_warning("This user currently has no permitted bills"); } // Bills $permissions_list = array_keys((array)$user_permissions['bill']); $form = array('type' => 'simple', 'style' => 'padding: 7px; margin: 0px;', //'submit_by_key' => TRUE, //'url' => generate_url($vars) ); // Elements $form['row'][0]['auth_secret'] = array( 'type' => 'hidden', 'value' => $_SESSION['auth_secret']); $form['row'][0]['user_id'] = array('type' => 'hidden', 'value' => $vars['user_id']); $form['row'][0]['entity_type'] = array('type' => 'hidden', 'value' => 'bill'); $form['row'][0]['action'] = array('type' => 'hidden', 'value' => 'user_perm_add'); $form_items['bills'] = array(); foreach (dbFetchRows("SELECT * FROM `bills`") as $bill) { if (!in_array($bill['bill_id'], $permissions_list)) { $form_items['bills'][$bill['bill_id']] = [ 'name' => $bill['bill_name'], 'subtext' => $bill['bill_descr'], 'icon' => $config['entities']['bill']['icon'] ]; } } $form['row'][0]['entity_id'] = array('type' => 'multiselect', 'name' => 'Permit Bill', 'width' => '250px', //'value' => $vars['entity_id'], 'values' => $form_items['bills']); // add button $form['row'][0]['Submit'] = array('type' => 'submit', 'name' => 'Add', 'icon' => $config['icon']['plus'], 'right' => TRUE, 'value' => 'Add'); print_form($form); unset($form); echo generate_box_close(); } // End bill permissions // Start group permissions if (OBSERVIUM_EDITION !== 'community') { echo generate_box_open(array('header-border' => TRUE, 'title' => 'Group Permissions')); if (!safe_empty($user_permissions['group'])) { echo('' . PHP_EOL); foreach ($user_permissions['group'] as $group_id => $status) { $group = get_group_by_id($group_id); echo(''); } echo('
'.generate_entity_link('group', $group).' ' . $group['group_descr'] . ' '); $form = array('type' => 'simple', //'submit_by_key' => TRUE, //'url' => generate_url($vars) ); // Elements $form['row'][0]['auth_secret'] = array( 'type' => 'hidden', 'value' => $_SESSION['auth_secret']); $form['row'][0]['entity_id'] = array('type' => 'hidden', 'value' => $group['group_id']); $form['row'][0]['entity_type'] = array('type' => 'hidden', 'value' => 'group'); $form['row'][0]['submit'] = array('type' => 'submit', 'name' => ' ', 'class' => 'btn-danger btn-mini', 'icon' => 'icon-trash', 'value' => 'user_perm_del'); print_form($form); unset($form); echo('
' . PHP_EOL); } else { echo('

This user currently has no permitted groups

'); //print_warning("This user currently has no permitted groups"); } // Groups $permissions_list = array_keys((array)$user_permissions['group']); $form = array('type' => 'simple', 'style' => 'padding: 7px; margin: 0px;', //'submit_by_key' => TRUE, //'url' => generate_url($vars) ); // Elements $form['row'][0]['auth_secret'] = array( 'type' => 'hidden', 'value' => $_SESSION['auth_secret']); $form['row'][0]['user_id'] = array('type' => 'hidden', 'value' => $vars['user_id']); $form['row'][0]['entity_type'] = array('type' => 'hidden', 'value' => 'group'); $form['row'][0]['action'] = array('type' => 'hidden', 'value' => 'user_perm_add'); $form_items['groups'] = array(); foreach (dbFetchRows("SELECT * FROM `groups`") as $group) { if (!in_array($group['group_id'], $permissions_list)) { $form_items['groups'][$group['group_id']] = [ 'name' => $group['group_name'], 'subtext' => $group['group_descr'], 'icon' => $config['entities'][$group['entity_type']]['icon'] ]; } } $form['row'][0]['entity_id'] = array('type' => 'multiselect', 'name' => 'Permit Group', 'width' => '250px', //'value' => $vars['entity_id'], 'values' => $form_items['groups']); // add button $form['row'][0]['Submit'] = array('type' => 'submit', 'name' => 'Add', 'icon' => $config['icon']['plus'], 'right' => TRUE, 'value' => 'Add'); print_form($form); unset($form); echo generate_box_close(); } // End group permissions // Start device permissions echo generate_box_open(array('header-border' => TRUE, 'title' => 'Device Permissions')); $user_permissions_devices = !safe_empty($user_permissions['device']); if ($user_permissions_devices) { echo('' . PHP_EOL); foreach ($user_permissions['device'] as $device_id => $status) { $device = device_by_id_cache($device_id); echo(''); } echo('
'.generate_device_link($device).' ' . $device['location'] . ' '); $form = array('type' => 'simple', //'submit_by_key' => TRUE, //'url' => generate_url($vars) ); // Elements $form['row'][0]['auth_secret'] = array( 'type' => 'hidden', 'value' => $_SESSION['auth_secret']); $form['row'][0]['entity_id'] = array('type' => 'hidden', 'value' => $device['device_id']); $form['row'][0]['entity_type'] = array('type' => 'hidden', 'value' => 'device'); $form['row'][0]['submit'] = array('type' => 'submit', 'name' => ' ', 'class' => 'btn-danger btn-mini', 'icon' => 'icon-trash', 'value' => 'user_perm_del'); print_form($form); unset($form); echo('
' . PHP_EOL); } else { echo('

This user currently has no permitted devices

'); //print_warning("This user currently has no permitted devices"); } // Devices $permissions_list = array_keys((array)$user_permissions['device']); // Display devices this user doesn't have Permissions to $form = array('type' => 'simple', 'style' => 'padding: 7px; margin: 0px;', //'submit_by_key' => TRUE, //'url' => generate_url($vars) ); // Elements $form['row'][0]['auth_secret'] = array( 'type' => 'hidden', 'value' => $_SESSION['auth_secret']); $form['row'][0]['user_id'] = array('type' => 'hidden', 'value' => $vars['user_id']); $form['row'][0]['entity_type'] = array('type' => 'hidden', 'value' => 'device'); $form['row'][0]['action'] = array('type' => 'hidden', 'value' => 'user_perm_add'); $form_items['devices'] = array(); foreach (dbFetchRows("SELECT * FROM `devices` ORDER BY `hostname`") as $device) { if (!in_array($device['device_id'], $permissions_list)) { //humanize_device($device); $form_items['devices'][$device['device_id']] = [ 'name' => $device['hostname'], 'subtext' => $device['location'], //'class' => $device['html_row_class'], 'icon' => $config['entities']['device']['icon'] ]; } } $form['row'][0]['entity_id'] = array('type' => 'multiselect', 'name' => 'Permit Device', 'width' => '250px', //'value' => $vars['entity_id'], 'values' => $form_items['devices']); // add button $form['row'][0]['Submit'] = array('type' => 'submit', 'name' => 'Add', 'icon' => $config['icon']['plus'], 'right' => TRUE, 'value' => 'Add'); print_form($form); unset($form); echo generate_box_close(); // End device permissions // Start port permissions echo generate_box_open(array('header-border' => TRUE, 'title' => 'Port Permissions')); if (!safe_empty($user_permissions['port'])) { echo('' . PHP_EOL); foreach (array_keys($user_permissions['port']) as $entity_id) { $port = get_port_by_id($entity_id); $device = device_by_id_cache($port['device_id']); echo(''); } echo('
'.generate_entity_link('device', $device).' '.generate_entity_link('port', $port).' ' . $port['ifDescr'] . ' '); $form = array('type' => 'simple', //'submit_by_key' => TRUE, //'url' => generate_url($vars) ); // Elements $form['row'][0]['auth_secret'] = array( 'type' => 'hidden', 'value' => $_SESSION['auth_secret']); $form['row'][0]['entity_id'] = array('type' => 'hidden', 'value' => $port['port_id']); $form['row'][0]['entity_type'] = array('type' => 'hidden', 'value' => 'port'); $form['row'][0]['submit'] = array('type' => 'submit', 'name' => '', 'class' => 'btn-danger btn-mini', 'icon' => 'icon-trash', 'value' => 'user_perm_del'); print_form($form); unset($form); echo('
' . PHP_EOL); } else { echo('

This user currently has no permitted ports

'); //print_warning('This user currently has no permitted ports'); } // Ports $permissions_list = array_keys((array)$user_permissions['port']); // Display devices this user doesn't have Permissions to $form = array('type' => 'simple', 'style' => 'padding: 7px; margin: 0px;', //'submit_by_key' => TRUE, //'url' => generate_url($vars) ); // Elements $form['row'][0]['auth_secret'] = array( 'type' => 'hidden', 'value' => $_SESSION['auth_secret']); $form['row'][0]['user_id'] = array('type' => 'hidden', 'value' => $vars['user_id']); $form['row'][0]['entity_type'] = array('type' => 'hidden', 'value' => 'port'); $form['row'][0]['action'] = array('type' => 'hidden', 'value' => 'user_perm_add'); $form_items['devices'] = []; foreach ($cache['devices']['hostname'] as $hostname => $device_id) { if (!$user_permissions_devices || !array_key_exists($device_id, $user_permissions['device'])) { $form_items['devices'][$device_id] = $hostname; } } $form['row'][0]['device_id'] = array('type' => 'select', 'name' => 'Select a device', 'width' => '150px', 'onchange' => "getInterfaceList(this, 'port_entity_id')", //'value' => $vars['device_id'], 'values' => $form_items['devices']); $form['row'][0]['port_entity_id'] = array('type' => 'multiselect', 'name' => 'Permit Port', 'width' => '150px', //'value' => $vars['port_entity_id'], 'values' => array()); // add button $form['row'][0]['Submit'] = array('type' => 'submit', 'name' => 'Add', 'icon' => $config['icon']['plus'], 'right' => TRUE, 'value' => 'Add'); print_form($form); unset($form); echo generate_box_close(); // End port permissions // Start sensor permissions echo generate_box_open(array('header-border' => TRUE, 'title' => 'Sensor Permissions')); if (!safe_empty($user_permissions['sensor'])) { echo('' . PHP_EOL); foreach (array_keys($user_permissions['sensor']) as $entity_id) { $sensor = get_entity_by_id_cache('sensor', $entity_id); $device = device_by_id_cache($sensor['device_id']); echo(''); } echo('
'.generate_entity_link('device', $device).' '.generate_entity_link('sensor', $sensor).' '); $form = array('type' => 'simple', //'submit_by_key' => TRUE, //'url' => generate_url($vars) ); // Elements $form['row'][0]['auth_secret'] = array( 'type' => 'hidden', 'value' => $_SESSION['auth_secret']); $form['row'][0]['entity_id'] = array('type' => 'hidden', 'value' => $sensor['sensor_id']); $form['row'][0]['entity_type'] = array('type' => 'hidden', 'value' => 'sensor'); $form['row'][0]['submit'] = array('type' => 'submit', 'name' => ' ', 'class' => 'btn-danger btn-mini', 'icon' => 'icon-trash', 'value' => 'user_perm_del'); print_form($form); unset($form); echo('
' . PHP_EOL); } else { echo('

This user currently has no permitted sensors

'); //print_warning('This user currently has no permitted sensors'); } // Sensors $permissions_list = array_keys((array)$user_permissions['sensor']); // Display devices this user doesn't have Permissions to $form = array('type' => 'simple', 'style' => 'padding: 7px; margin: 0px;', //'submit_by_key' => TRUE, //'url' => generate_url($vars) ); // Elements $form['row'][0]['auth_secret'] = array( 'type' => 'hidden', 'value' => $_SESSION['auth_secret']); $form['row'][0]['user_id'] = array('type' => 'hidden', 'value' => $vars['user_id']); $form['row'][0]['entity_type'] = array('type' => 'hidden', 'value' => 'sensor'); $form['row'][0]['action'] = array('type' => 'hidden', 'value' => 'user_perm_add'); // FIXME, limit devices list only with sensors? $form_items['devices'] = array(); foreach ($cache['devices']['hostname'] as $hostname => $device_id) { if (!in_array($device_id, $permissions_list)) { $form_items['devices'][$device_id] = $hostname; } } $form['row'][0]['device_id'] = array('type' => 'select', 'name' => 'Select a device', 'width' => '150px', 'onchange' => "getEntityList(this, 'sensor_entity_id', 'sensor')", //'value' => $vars['device_id'], 'values' => $form_items['devices']); $form['row'][0]['sensor_entity_id'] = array('type' => 'multiselect', 'name' => 'Permit Sensor', 'width' => '150px', //'value' => $vars['sensor_entity_id'], 'values' => array()); // add button $form['row'][0]['Submit'] = array('type' => 'submit', 'name' => 'Add', 'icon' => $config['icon']['plus'], 'right' => TRUE, 'value' => 'Add'); print_form($form); unset($form); echo generate_box_close(); // End sensor permissions // End main permissions block //echo generate_box_close(); ?>
= $pagesize; if ($pagination) { $users = array_slice($user_list, $start, $pagesize); echo(pagination($vars, $count)); } else { $users = $user_list; } echo(generate_box_open()); echo(''); $cols = array( array('', 'class="state-marker"'), 'user_id' => array('User ID', 'style="width: 80px;"'), 'user' => 'Username', 'access' => 'Access', 'realname' => 'Real Name', 'email' => 'Email', ); echo(get_table_header($cols)); foreach ($users as $user) { humanize_user($user); $user['edit_url'] = generate_url(array('page' => 'user_edit', 'user_id' => $user['user_id'])); echo(''); echo(''); echo(''); echo(''); //echo(''); echo(''); echo(''); echo(''); echo ''; echo(''); } echo('
'.$user['user_id'].''.escape_html($user['username']).''.$user['level'].' '.$user['level_label'].''.escape_html($user['realname']).''.escape_html($user['email']).''.get_type_class_label($user['type'], 'user_type').'
'); echo(generate_box_close()); if ($pagination) { echo(pagination($vars, $count)); } } else { print_warning('There are no users in the database.'); } } // EOF