employee = model(Employee::class); $this->module = model(Module::class); $config = config(OSPOS::class)->settings; $validation = Services::validation(); $logged_in_employee_info = $this->employee->get_logged_in_employee_info(); if ( !$this->employee->has_module_grant($module_id, $logged_in_employee_info->person_id) || (isset($submodule_id) && !$this->employee->has_module_grant($submodule_id, $logged_in_employee_info->person_id)) ) { throw new RedirectException("no_access/$module_id/$submodule_id"); } // Load up global global_view_data visible to all the loaded views $this->session = session(); if ($menu_group == null) { $menu_group = $this->session->get('menu_group'); } else { $this->session->set('menu_group', $menu_group); } $allowed_modules = $menu_group == 'home' ? $this->module->get_allowed_home_modules($logged_in_employee_info->person_id) : $this->module->get_allowed_office_modules($logged_in_employee_info->person_id); $this->global_view_data = []; foreach ($allowed_modules->getResult() as $module) { $this->global_view_data['allowed_modules'][] = $module; } $this->global_view_data += [ 'user_info' => $logged_in_employee_info, 'controller_name' => $module_id, 'config' => $config ]; view('viewData', $this->global_view_data); } public function sanitizeSortColumn($headers, $field, $default): string { return $field != null && in_array($field, array_keys(array_merge(...$headers))) ? $field : $default; } /** * Validates the given rules and, on failure, returns a JSON error response. * * @param array $rules * @param array $messages * @param mixed $id * @return ResponseInterface|null */ protected function validateFields(array $rules, array $messages, $id = NEW_ENTRY): ?ResponseInterface { if (!$this->validate($rules, $messages)) { $errors = $this->validator->getErrors(); return $this->response->setJSON(['success' => false, 'message' => reset($errors), 'id' => $id]); } return null; } /** * AJAX function used to confirm whether values sent in the request are numeric * @return ResponseInterface * @noinspection PhpUnused */ public function getCheckNumeric(): ResponseInterface { foreach ($this->request->getGet() as $value) { if (parse_decimals($value) === false) { return $this->response->setJSON('false'); } } return $this->response->setJSON('true'); } /** * @param $key * @return mixed|void */ public function getConfig($key) { if (isset($config[$key])) { return $config[$key]; } } /** * @return false */ public function getIndex() { return false; } /** * @return false */ public function getSearch() { return false; } /** * @return false */ public function suggest_search() { return false; } /** * @param int $data_item_id * @return false */ public function getView(int $data_item_id = -1) { return false; } /** * @param int $data_item_id * @return ResponseInterface|false */ public function postSave(int $data_item_id = -1): ResponseInterface|false { return false; } /** * @return false */ public function postDelete() { return false; } }