diff --git a/app/Controllers/SamlController.php b/app/Controllers/SamlController.php index 8e53870..fc3530c 100644 --- a/app/Controllers/SamlController.php +++ b/app/Controllers/SamlController.php @@ -53,30 +53,58 @@ class SamlController extends BaseController $email = $this->request->getGet('email'); if (! $email) { - return $this->response->setStatusCode(400)->setBody('Email required'); + return $this->response->setStatusCode(400)->setJSON([ + 'status' => 'failed', + 'code' => 400, + 'data' => '', + 'message' => 'Email required', + ]); } + $email = trim((string) $email); $at = strrchr($email, '@'); if ($at === false) { - return $this->response->setStatusCode(400)->setBody('Invalid email'); + return $this->response->setStatusCode(400)->setJSON([ + 'status' => 'failed', + 'code' => 400, + 'data' => '', + 'message' => 'Invalid email', + ]); } + + $domain = strtolower(substr($at, 1)); + // dd($domain); + $model = new SamlClientModel(); $samlClient = $model->getByDomain($domain); + // dd($samlClient); + + if (! $samlClient) { - return $this->response->setStatusCode(404)->setBody('SAML not configured for this domain'); + return $this->response->setStatusCode(404)->setJSON([ + 'status' => 'failed', + 'code' => 404, + 'data' => '', + 'message' => 'SAML not configured for this domain', + ]); } - // dd($samlClient); + $auth = $this->getSamlAuth($samlClient['id']); } catch (\Throwable $e) { - return redirect()->to(site_url('login'))->with('error', $e->getMessage()); + return $this->response->setStatusCode(500)->setJSON([ + 'status' => 'failed', + 'code' => 500, + 'data' => '', + 'message' => $e->getMessage(), + ]); } $url = $auth->login(null, [], false, false, true);