diff --git a/app/Config/Database.php b/app/Config/Database.php index 7a1fd21..726466b 100644 --- a/app/Config/Database.php +++ b/app/Config/Database.php @@ -24,7 +24,7 @@ class Database extends Config * * @var array */ - public array $default = [ + public array $default_old = [ 'DSN' => '', 'hostname' => 'localhost', 'username' => '', @@ -50,6 +50,33 @@ class Database extends Config ], ]; + // /** + // * Sample database connection for Postgre. + // * + // * @var array + // */ + public array $default = [ + 'DSN' => '', + 'hostname' => '10.20.30.60', + 'username' => 'merms_panel', + 'password' => 'merms_panel', + 'database' => 'merms_panel', + 'schema' => 'public', + 'DBDriver' => 'Postgre', + 'DBPrefix' => '', + 'pConnect' => false, + 'DBDebug' => true, + 'charset' => 'utf8', + 'swapPre' => '', + 'failover' => [], + 'port' => 5432, + 'dateFormat' => [ + 'date' => 'Y-m-d', + 'datetime' => 'Y-m-d H:i:s', + 'time' => 'H:i:s', + ], + ]; + // /** // * Sample database connection for SQLite3. // * diff --git a/app/Controllers/BaseController.php b/app/Controllers/BaseController.php index 58b7ef3..50d842a 100644 --- a/app/Controllers/BaseController.php +++ b/app/Controllers/BaseController.php @@ -27,7 +27,7 @@ abstract class BaseController extends Controller * @var CLIRequest|IncomingRequest */ protected $request; - + protected $session; /** * An array of helpers to be loaded automatically upon * class instantiation. These helpers will be available @@ -54,6 +54,7 @@ abstract class BaseController extends Controller // Preload any models, libraries, etc, here. $this->request = \Config\Services::request(); // E.g.: $this->session = \Config\Services::session(); + $this->session = \Config\Services::session(); } protected function renderExternalPage($page_name, $data):string { @@ -62,6 +63,30 @@ abstract class BaseController extends Controller view('template/footer', $data); } + protected function createUserSession($data) { + + $loginReturn = false; + // session_start(); + if ( isset($data["member"]) && isset($data["session"]) ) { + $_SESSION['session_id'] = $data['session']['session_id']; // ""; + $_SESSION['username'] = $data['member']['username']; // ""; + $_SESSION['practice_name'] = $data['member']['account_name']; + $_SESSION['practice_code'] = $data['member']['uid']; + $_SESSION['user_firstname'] = $data['member']['firstname']; + $_SESSION['user_lastname'] = $data['member']['lastname']; + $_SESSION['user_email'] = $data['member']['email']; + $_SESSION['member_id'] = $data['session']['member_id']; // + $_SESSION['practice_id'] = $data['session']['member_id']; + $_SESSION['user_provider'] = "1"; + $_SESSION['user_admin'] = "1"; + $loginReturn = true; + } else { + $data['error_message'] = "Invalid Username or Password"; + } + + return $loginReturn; + } + protected function loginUser($data, $out) { $data['action'] = MERMS_PROVIDERS_LOGIN; diff --git a/app/Controllers/Login.php b/app/Controllers/Login.php index e2c038f..8fb25b8 100644 --- a/app/Controllers/Login.php +++ b/app/Controllers/Login.php @@ -6,10 +6,10 @@ MERM Providers Login */ class Login extends BaseController { + protected \App\Models\Auth_model $auth_model; public function __construct() { // parent::__construct(); - // $this->load->helper(array('form', 'url')); - // $this->load->library('form_validation'); + $this->auth_model = new \App\Models\Auth_model(); } public function HomeLogin(){ $data = array(); @@ -25,7 +25,14 @@ class Login extends BaseController { $password = $this->request->getVar('mermspassword'); if ($username == 'ameye@chiefsoft.com' && $password=='Awori.Awori'){ - return redirect()->to('providers'); + + //$this->load->model('auth_model'); + $out = $this->auth_model->userLogin(); + if ($this->createUserSession($out)){ // session was built + return redirect()->to('providers'); + } +// var_dump($out); +// exit(); } diff --git a/app/Models/Auth_model.php b/app/Models/Auth_model.php new file mode 100644 index 0000000..0d6dbfc --- /dev/null +++ b/app/Models/Auth_model.php @@ -0,0 +1,45 @@ +query($mysql); + + $row = $query->getRowArray(); + if (isset($row)) { + $sqlDel = "DELETE FROM members_session WHERE member_id = ". $row["member_id"]; + $db->query($sqlDel); + + // $sql = 'INSERT INTO members_session (member_id, session_id) VALUES (?, ?, ?)'; + + $pQuery = $db->prepare(static function ($db) { + return $db->table('members_session')->insert([ + 'member_id' => '0', + 'session_id' => '', + ]); + }); + // Collect the Data + $member_id = $row["member_id"]; + $session_id = $this->getRandomString(25).$this->getRandomString(25); + $results = $pQuery->execute($member_id, $session_id); + + $mysql = "SELECT * FROM members_session WHERE member_id = ". $row["member_id"]; + $db = db_connect(); + $query = $db->query($mysql); + $row_session = $query->getRowArray(); + + return ["member"=> $row,"session"=> $row_session]; + } + return []; + } + + private function getRandomString($n) { + return bin2hex(random_bytes($n / 2)); + } +} \ No newline at end of file diff --git a/app/Models/Members_model.php b/app/Models/Members_model.php new file mode 100644 index 0000000..e2d05ae --- /dev/null +++ b/app/Models/Members_model.php @@ -0,0 +1,6 @@ + + @@ -77,6 +83,7 @@ +
practice_name?>