protected function getJsonView($data, \Request $request) { $vars = $request->getRequestVars(); $command = ''; if (!empty($data['command'])) { $command = $data['command']; } $system_details = ''; switch ($command) { case 'editPermissions': $result = SettingsFactory::userPermissionsList($data, $request); break; case 'editDepartments': $result = SettingsFactory::departmentsList($data, $request); break; case 'editLocations': $result = SettingsFactory::locationsList($data, $request); break; case 'getDepartments': $result = SettingsFactory::getDepartmentByID($vars['department_id']); break; case 'getLocation': $result = SettingsFactory::getLocationByID($vars['location_id']); break; default: throw new Exception("Invalid command received in system controller getJsonView. Command = {$command}"); } $view = new \View\JsonView($result); return $view; }
public static function userPermissionsList($data, $request) { $users = Settings::getPHPWSUsers(); $departments_result = SystemDevice::getSystemDepartments(); // convert to associative array foreach ($departments_result as $dept) { $departments[$dept['id']] = $dept['display_name']; } $rows = array(); $db = \Database::getDB(); $tbl = $db->addTable('systems_permission'); $tbl->addField('user_id'); $tbl->addField('departments'); $tbl->addField('id'); foreach ($users as $user) { $permissions = ''; $permitted_dept = array(); $db->clearConditional(); $user_id = $user['id']; $tbl->addFieldConditional('user_id', $user_id, '='); $result = $db->select(); if (!empty($result)) { $permitted_dept = explode(':', $result['0']['departments']); foreach ($permitted_dept as $dept) { if (!empty($permissions)) { $permissions .= ', '; } $permissions .= $departments[$dept]; } } else { $permissions = "All Departments!"; } $action = '<a style="cursor:pointer" onclick="return confirm(\'Are you sure you want to delete this users permissions?\')" href="./systemsinventory/settings/editPermissions/?action=delete&user_id=' . $user_id . '")> <span class="glyphicon glyphicon-trash" title="Delete Restrictions"></span></a>'; $rows[] = array('display_name' => $user['display_name'], 'username' => $user['username'], 'permissions' => $permissions, 'action' => $action); } $pager = new \Pager(); $pager->setId('user-permission-list'); $pager->setHeaders(array('display_name' => 'Name', 'username' => 'Username', 'permissions' => 'Current Permissions')); $pager->setRows($rows); $data = $pager->getJson(); return $data; }