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;
 }