diff --git a/app/Config/Routes.php b/app/Config/Routes.php index 4c1903bd..1bc86af6 100755 --- a/app/Config/Routes.php +++ b/app/Config/Routes.php @@ -22,6 +22,7 @@ $routes->get('/swagger', 'SwaggerController::index', ['filter' => 'authMVC']); $routes->get('/fedeploy', 'DeployController::fedeploy_view', ['filter' => 'authMVC']); $routes->post('/fedeploy', 'DeployController::fedeploy', ['filter' => 'authMVC']); $routes->get('/visitOffBoardCheck', 'EmployeeController::visitOffBoardCheck'); +$routes->get('/metaDashboardDemo', 'TestingController::metaDashboardDemo'); // Reminder Mail Notification diff --git a/app/Controllers/MasterController.php b/app/Controllers/MasterController.php index dc6538d4..7017dd07 100755 --- a/app/Controllers/MasterController.php +++ b/app/Controllers/MasterController.php @@ -497,6 +497,9 @@ class MasterController extends AdminController { $this->myLogger->logme('error','Edit Insurer general info function called'); + $postData = $this->request->getPost(); + $logoFile = $this->request->getFile('insurer_logo'); + $rules = [ 'name' => [ 'rules' => 'required', @@ -513,22 +516,30 @@ class MasterController extends AdminController ] ], 'insurer_logo' => [ - 'rules' => 'if_exist|is_image[insurer_logo]|max_size[insurer_logo,200]|ext_in[insurer_logo,jpg,jpeg,png]', + 'rules' => 'permit_empty|is_image[insurer_logo]|max_size[insurer_logo,200]|ext_in[insurer_logo,jpg,jpeg,png]', 'errors' => [ 'is_image' => 'The uploaded file must be an image', 'max_size' => 'File size should not exceed 200 KB', - 'ext_in' => 'Allowed file types: jpg, jpeg, png', + 'ext_in' => 'Only JPG, JPEG, and PNG files are allowed.', ] ], ]; - if (!$this->validate($rules)) { - return $this->response->setStatusCode(400)->setJSON([ - 'status' => false, - 'message' => 'Input validation failed', - 'code' => 400, - 'errors' => $this->validator->getErrors() - ]); + if (!$this->validateData($postData, $rules)) { + $errors = $this->validator->getErrors(); + + $mainMessage = 'Input validation failed'; + + if (isset($errors['insurer_logo']) && (strpos($errors['insurer_logo'], 'Security') !== false || strpos($errors['insurer_logo'], 'Forbidden') !== false)) { + $mainMessage = 'File upload rejected: Security policy violation.'; + } + + return $this->response->setStatusCode(400)->setJSON([ + 'status' => false, + 'message' => $mainMessage, // This will change based on the error + 'code' => 400, + 'errors' => $this->validator->getErrors() + ]); } $uploadFilePath = ROOTPATH . 'public/uploads/logo/'; diff --git a/app/Controllers/TestingController.php b/app/Controllers/TestingController.php index 75d4d578..f6769af2 100644 --- a/app/Controllers/TestingController.php +++ b/app/Controllers/TestingController.php @@ -17,6 +17,8 @@ use PhpOffice\PhpSpreadsheet\Style\Alignment; use PhpOffice\PhpSpreadsheet\Style\Fill; use PhpOffice\PhpSpreadsheet\Style\Border; +use Firebase\JWT\JWT; + class TestingController extends BaseController { use ResponseTrait; @@ -983,5 +985,44 @@ class TestingController extends BaseController } + public function metaDashboardDemo() + { + + // 🔐 Move this to .env in real projects + $METABASE_SECRET_KEY = '6a9ec3d833576923ea04078188fe26cad17b5de351ab3ce349dd2c2d07b5d0cd'; + + $payload = [ + 'resource' => [ + 'dashboard' => 1 + ], + 'params' => (object)[], // MUST be object for Metabase + 'exp' => time() + (10 * 60) // 10 minutes + ]; + + $token = JWT::encode($payload, $METABASE_SECRET_KEY, 'HS256'); + + // // You can either return token only + // return $this->response->setJSON([ + // 'token' => $token, + // 'iframe_url' => "https://your-metabase-domain/embed/dashboard/{$token}#bordered=true&titled=true" + // ]); + if($this->request->getGet('api') == 1) + { + return $this->respond([ + 'status' => 'success', + 'message' => 'Form data received successfully!', + 'data' => [ + 'metabaseToken' => $token, + 'metabaseUrl' => 'https://nsights.nhanceindia.in'] + ]); + } + + return view('meta_dashboard_demo_one', [ + 'metabaseToken' => $token, + 'metabaseUrl' => 'https://nsights.nhanceindia.in', + ]); + } + + } diff --git a/app/Views/insurer_basic_info.php b/app/Views/insurer_basic_info.php index aadc43d3..f553b093 100755 --- a/app/Views/insurer_basic_info.php +++ b/app/Views/insurer_basic_info.php @@ -70,7 +70,7 @@ input:checked + .slider:before {