Role Information

Role ID
Name
Description
TRUE, 'title' => 'Role Members')); $group_members = dbFetchRows("SELECT * FROM `roles_users` WHERE `role_id` = ? AND `auth_mechanism` = ?", [ $role['role_id'], $config['auth_mechanism'] ]); $user_list = auth_user_list(); if (!safe_empty($group_members)) { 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 ($group_members as $user) { $user = array_merge((array)$user, (array)$user_list[$user['user_id']]); echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; $memberlist[] = $user['username']; } echo('
' . $user['username'] . '' . $user['email'] . 'Level ' . $user['level'] . ''; $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]['user_id'] = array('type' => 'hidden', 'value' => $user['user_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 role currently has no members

'); } $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]['role_id'] = array('type' => 'hidden', 'value' => $role['role_id']); $form['row'][0]['action'] = array('type' => 'hidden', 'value' => 'role_user_add'); $form_items['users'] = array(); foreach ($user_list as $user_id => $user) { if (!in_array($user['username'], $memberlist)) { $form_items['users'][$user['user_id']] = array('name' => escape_html($user['username']), 'descr' => escape_html($user['email'])); } } $form['row'][0]['user_id'] = array('type' => 'multiselect', 'name' => 'Add Member', 'width' => '250px', 'values' => $form_items['users']); // 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, 'title' => 'Platform Permissions')); // Cache group permissions $role_perms['permission'] = []; foreach (dbFetchRows("SELECT * FROM `roles_permissions` WHERE `role_id` = ?", array($vars['role_id'])) as $perm) { $role_perms['permission'][$perm['permission']] = TRUE; } if (!safe_empty($role_perms['permission'])) { echo('' . PHP_EOL); foreach ($role_perms['permission'] as $perm => $status) { echo(''); } echo('
'.$perm.' ' . $config['permissions'][$perm]['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]['role_id'] = array('type' => 'hidden', 'value' => $role['role_id']); $form['row'][0]['permission'] = array('type' => 'hidden', 'value' => $perm); $form['row'][0]['action'] = array('type' => 'hidden', 'value' => 'role_permission_del'); $form['row'][0]['submit'] = array('type' => 'submit', 'name' => ' ', 'class' => 'btn-danger btn-mini', 'icon' => 'icon-trash', 'value' => 'role_permission_del'); print_form($form); unset($form); echo('
' . PHP_EOL); } else { echo('

This role currently has no permissions

'); //print_warning("This user currently has no permitted groups"); } // Permissions Selector $permissions_list = array_keys((array)$role_perms['permission']); $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]['role_id'] = array('type' => 'hidden', 'value' => $role['role_id']); $form['row'][0]['action'] = array('type' => 'hidden', 'value' => 'role_permission_add'); $form_items['perms'] = array(); foreach ($config['permissions'] as $perm => $perm_data) { if (!in_array($perm, $permissions_list, TRUE)) { $form_items['perms'][$perm] = [ 'name' => $perm, 'subtext' => $perm_data['descr'] ]; } } $form['row'][0]['permission'] = array('type' => 'multiselect', 'name' => 'Add Permission', 'width' => '250px', //'value' => $vars['entity_id'], 'values' => $form_items['perms']); // 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 platform permissions // Cache group permissions foreach (dbFetchRows("SELECT * FROM `roles_entity_permissions` WHERE `role_id` = ?", array($vars['role_id'])) as $entity) { $role_perms[$entity['entity_type']][$entity['entity_id']] = $entity['access']; } //print_vars($role_perms); // 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($role_perms['bill'])) { echo('' . PHP_EOL); foreach ($role_perms['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' => 'role_entity_del'); print_form($form); unset($form); echo('
' . PHP_EOL); } else { echo('

This role currently has no permitted bills

'); //print_warning("This user currently has no permitted bills"); } // Bills $permissions_list = array_keys((array)$role_perms['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]['role_id'] = array('type' => 'hidden', 'value' => $role['role_id']); $form['row'][0]['entity_type'] = array('type' => 'hidden', 'value' => 'bill'); $form['row'][0]['action'] = array('type' => 'hidden', 'value' => 'role_entity_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 entity group permissions if (OBSERVIUM_EDITION !== 'community') { echo generate_box_open(array('header-border' => TRUE, 'title' => 'Entity Group Permissions')); if (!safe_empty($role_perms['group'])) { echo('' . PHP_EOL); foreach ($role_perms['group'] as $group_id => $status) { $group = get_group_by_id($group_id); echo(''); } echo('
'.generate_entity_link('group', $group).' '. ($status === 'rw' ? '' : '') .' ' . $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]['action'] = array('type' => 'hidden', 'value' => 'role_entity_del'); $form['row'][0]['submit'] = array('type' => 'submit', 'name' => ' ', 'class' => 'btn-danger btn-mini', 'icon' => 'icon-trash', 'value' => 'role_entity_del'); print_form($form); unset($form); echo('
' . PHP_EOL); } else { echo('

This role currently has no permitted entity groups

'); //print_warning("This user currently has no permitted groups"); } // Groups $permissions_list = array_keys((array)$role_perms['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]['role_id'] = array('type' => 'hidden', 'value' => $role['role_id']); $form['row'][0]['entity_type'] = array('type' => 'hidden', 'value' => 'group'); $form['row'][0]['action'] = array('type' => 'hidden', 'value' => 'role_entity_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']); $form['row'][0]['access'] = array('type' => 'select', 'name' => 'Access Level', 'width' => '110px', 'value' => 'ro', 'values' => array('ro' => array('name' => 'Read Only'), 'rw' => array('name' => 'Read Write'))); // 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')); $role_perms_devices = !safe_empty($role_perms['device']); if ($role_perms_devices) { echo('' . PHP_EOL); foreach ($role_perms['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]['action'] = array('type' => 'hidden', 'value' => 'role_entity_del'); $form['row'][0]['submit'] = array('type' => 'submit', 'name' => ' ', 'class' => 'btn-danger btn-mini', 'icon' => 'icon-trash', 'value' => 'role_entity_del'); print_form($form); unset($form); echo('
' . PHP_EOL); } else { echo('

This role currently has no permitted devices

'); //print_warning("This user currently has no permitted devices"); } // Devices $permissions_list = array_keys((array)$role_perms['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]['role_id'] = array('type' => 'hidden', 'value' => $role['role_id']); $form['row'][0]['entity_type'] = array('type' => 'hidden', 'value' => 'device'); $form['row'][0]['action'] = array('type' => 'hidden', 'value' => 'role_entity_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($role_perms['port'])) { echo('' . PHP_EOL); foreach (array_keys($role_perms['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]['action'] = array('type' => 'hidden', 'value' => 'role_entity_del'); $form['row'][0]['submit'] = array('type' => 'submit', 'name' => '', 'class' => 'btn-danger btn-mini', 'icon' => 'icon-trash', 'value' => 'role_entity_del'); print_form($form); unset($form); echo('
' . PHP_EOL); } else { echo('

This role currently has no permitted ports

'); //print_warning('This user currently has no permitted ports'); } // Ports $permissions_list = array_keys((array)$role_perms['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]['role_id'] = array('type' => 'hidden', 'value' => $role['role_id']); $form['row'][0]['entity_type'] = array('type' => 'hidden', 'value' => 'port'); $form['row'][0]['action'] = array('type' => 'hidden', 'value' => 'role_entity_add'); $form_items['devices'] = []; foreach ($cache['devices']['hostname'] as $hostname => $device_id) { if (!$role_perms_devices || !array_key_exists($device_id, $role_perms['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($role_perms['sensor'])) { echo('' . PHP_EOL); foreach (array_keys($role_perms['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]['action'] = array('type' => 'hidden', 'value' => 'role_entity_del'); $form['row'][0]['submit'] = array('type' => 'submit', 'name' => ' ', 'class' => 'btn-danger btn-mini', 'icon' => 'icon-trash', 'value' => 'role_entity_del'); print_form($form); unset($form); echo('
' . PHP_EOL); } else { echo('

This role currently has no permitted sensors

'); //print_warning('This user currently has no permitted sensors'); } $permissions_list = array_keys((array)$role_perms['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]['role_id'] = array('type' => 'hidden', 'value' => $role['role_id']); $form['row'][0]['entity_type'] = array('type' => 'hidden', 'value' => 'sensor'); $form['row'][0]['action'] = array('type' => 'hidden', 'value' => 'role_entity_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 ?>
'); $cols = array( array('', 'class="state-marker"'), 'role_id' => array('Group ID', 'style="width: 80px;"'), 'role_name' => array('Name', 'style="width: 200px;"'), 'role_count' => array('Users', 'style="width: 80px;"'), 'role_descr' => 'Description', ); echo(get_table_header($cols)); foreach ($roles as $role) { humanize_user($role); $role['edit_url'] = generate_url(array('page' => 'roles', 'role_id' => $role['role_id'])); $role['count'] = dbFetchCell("SELECT COUNT(*) FROM `roles_users` WHERE `role_id` = ? AND `auth_mechanism` = ?", [ $role['role_id'], $config['auth_mechanism'] ]); echo ''; echo ''; echo '' . $role['role_id'] . ''; echo '' . escape_html($role['role_name']) . ''; echo ''; echo '' . escape_html($role['role_descr']) . ''; echo ''; } echo(''); echo(generate_box_close()); } else { print_warning('There are no user groups in the database.'); } } // end if role_id