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 '' . escape_html($role['role_name']) . ' | ';
echo '' . escape_html($role['role_descr']) . ' | ';
echo '';
$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 ' | ';
echo '
';
$role_list[] = $role['role_id'];
}
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(' |
'.$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(' |
');
}
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(' |
'.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(' |
');
}
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(' |
'.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(' |
');
}
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(' |
'.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(' |
');
}
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(' |
'.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(' |
');
}
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();
?>