From 96b93c723f5ac4d2d80a85e1bf5239e54cb14721 Mon Sep 17 00:00:00 2001 From: VE10-Sanjeev Date: Wed, 23 Aug 2023 15:00:55 +0530 Subject: [PATCH] session Helper implementation : ps --- app/Controllers/Authentication.php | 33 ++++++----- app/Controllers/BaseController.php | 51 +++++++++-------- app/Controllers/Books.php | 20 ++++--- app/Controllers/Home.php | 6 +- app/Controllers/Settings.php | 22 +++++--- app/Controllers/Users.php | 17 +++--- app/Helpers/session_helper.php | 90 ++++++++++++++++++++++++++++++ app/Views/template/topbar.php | 2 +- 8 files changed, 175 insertions(+), 66 deletions(-) create mode 100644 app/Helpers/session_helper.php diff --git a/app/Controllers/Authentication.php b/app/Controllers/Authentication.php index 285bffa8..05a29b1a 100755 --- a/app/Controllers/Authentication.php +++ b/app/Controllers/Authentication.php @@ -49,45 +49,50 @@ class Authentication extends BaseController if ($username === $user['email'] && $pwd_verify) { // Redirect to a dashboard or other protected area - $session = \Config\Services::session(); - $session->set('user_id', $user['user_id']); - $session->set('user_name', $user['first_name'] . " " . $user['last_name']); - $session->set('user_role', $user['role']); - $session->set('business_id', $user['business_id']); - + helper('session'); + set_logged_user_id($user['user_id']); + set_logged_name($user['first_name'] . " " . $user['last_name']); + set_user_role($user['role']); + set_business_id($user['business_id']); + return redirect()->to('dashboard'); // $cookie = \Config\Services::cookie(); // $cookie->setCookie('remember_username', 'Sri Harsha', 3600); // Cookie expires in 1 hour - return redirect()->to('dashboard'); + } else { // Invalid credentials, display error message // return redirect()->back()->with('error', 'Invalid username or password.'); return redirect()->back()->withInput()->with('error', 'Invalid username or password.'); - } } else { // Validation failed, display errors // return redirect()->back()->withInput()->with('validation', $validation); return redirect()->back()->withInput()->with('error', 'Invalid username or password.'); - } } - public function logout() { // Clear session and cookies - $session = \Config\Services::session(); - $session->remove('user_id'); + $session = session(); + + // Regenerate the session ID + $session->regenerate(); + + // Clear session data and perform logout logic $session->destroy(); - // $cookie = \Config\Services::cookie(); // $remembered_username = $cookie->getCookie('remember_username'); // $cookie->delete('remember_username'); // Redirect to a logout confirmation page or login page - return redirect()->to('/login'); // Replace with your login route + // return redirect()->to('/login'); // Replace with your login route + $this->response->setHeader('Cache-Control', 'no-store, no-cache, must-revalidate, max-age=0'); + $this->response->setHeader('Pragma', 'no-cache'); + $this->response->setHeader('Expires', 'Fri, 01 Jan 1990 00:00:00 GMT'); + + return redirect()->to('/login'); // } public function lockscreen() diff --git a/app/Controllers/BaseController.php b/app/Controllers/BaseController.php index 8f324f73..00674fd6 100644 --- a/app/Controllers/BaseController.php +++ b/app/Controllers/BaseController.php @@ -56,33 +56,32 @@ abstract class BaseController extends Controller // E.g.: $this->session = \Config\Services::session(); } + public function render_page($viewpage, $data){ + helper('session'); + + $session_uid = get_logged_user_id('user_id'); + $session_uname = get_logged_name('user_name'); + $session_role = get_user_role('user_role'); + if(!is_session_active()) { + $route = base_url()."login"; + return redirect()->route($route); + } + + $auth_model = new AuthenticationModel(); - public function render_page($viewpage, $data) - { - $session = \Config\Services::session(); - // print_r($session);die(); - $session_uid = $session->get('user_id'); - $session_uname = $session->get('user_name'); - $session_role = $session->get('user_role'); - - $auth_model = new AuthenticationModel(); - - $details = $auth_model->getheringDetailsForHeader($session_uid); - $data['company_name'] = $details[0]['site_name']; - $data['company_short_name'] = $details[0]['site_title']; - $data['loggedin_person'] = $session_uname; - $data['loggedin_person_role'] = $details[0]['role']; - $data['favicon'] = $details[0]['favicon']; - $data['profile_picture'] = $details[0]['profile_picture']; - $data['browser_title'] = $data['company_name'] . ' | ' . $data['company_short_name'] . ' ' . $data['page_name']; - $data['heading'] = $data['page_name'] == "Dashboard" ? 'Welcome to ' . $data['company_name'] : ""; - - - echo view('template/header.php', $data); - echo view('template/topbar.php', $data); - echo view($viewpage, $data); - echo view('template/footer.php', $data); - + $details = $auth_model->getheringDetailsForHeader($session_uid); + $data['company_name'] = $details[0]['site_name']; + $data['company_short_name'] = $details[0]['site_title']; + $data['loggedin_person'] = $session_uname; + $data['loggedin_person_role'] = $details[0]['role']; + $data['favicon'] = $details[0]['favicon']; + $data['profile_picture'] = $details[0]['profile_picture']; + $data['browser_title'] = $data['company_name'] . ' | ' . $data['company_short_name'] . ' ' . $data['page_name']; + $data['heading'] = $data['page_name'] == "Dashboard" ? 'Welcome to ' . $data['company_name'] : ""; + echo view('template/header.php', $data); + echo view('template/topbar.php', $data); + echo view($viewpage, $data); + echo view('template/footer.php', $data); // $header = view('template/header.php', $data); // $topbar = view('template/topbar.php', $data); // $content = view($viewpage, $data); diff --git a/app/Controllers/Books.php b/app/Controllers/Books.php index bcde13ae..3581e73b 100755 --- a/app/Controllers/Books.php +++ b/app/Controllers/Books.php @@ -8,9 +8,11 @@ class Books extends BaseController { public function index() { - $session = \Config\Services::session(); - $session_role = $session->get('user_role'); - $session_bid = $session->get('business_id'); + helper('session'); + if (is_session_active()) { + $session_role = get_user_role('user_role'); + $session_bid = get_business_id('business_id'); + $where = ['books.isactive' => 1]; if (!empty($session_role) && $session_role !== "sadmin") { $where = ['books.business_id' => $session_bid, 'books.isactive' => 1]; @@ -22,6 +24,10 @@ class Books extends BaseController $data['page_name'] = 'Book Details'; $data['details'] = $book_details; $this->render_page('book_list', $data); + } else { + // Session is not active or user is not logged in + return redirect()->to('login'); + } } ## To Load Book Add/Update page @@ -44,22 +50,22 @@ class Books extends BaseController ## To Save/Update Book Data on DB. public function book_synchronization() { - $session = \Config\Services::session(); + helper('session'); $model = new BooksModel(); $model->setTable('books'); if ($this->request->is('post')) { $requestData = $this->request->getVar(); } - $requestData['business_id'] = $session->get('business_id'); + $requestData['business_id'] = get_business_id('business_id'); if ($requestData['user_id']) { #edit - $requestData['updated_by'] = $session->get('book_id'); + $requestData['updated_by'] = get_logged_user_id(); $requestData['isactive'] = isset($requestData['isactive']) && $requestData['isactive'] == 'on' ? 1 : 0; $model->saveData($requestData, $requestData['user_id']); $alert_message = "Book details successfully updated."; } else { #add - $requestData['created_by'] = $session->get('user_id'); + $requestData['created_by'] = get_logged_user_id(); $requestData['isactive'] = 1; $model->saveData($requestData, null); $alert_message = "Book details successfully created."; diff --git a/app/Controllers/Home.php b/app/Controllers/Home.php index 23cf126b..3373fde0 100644 --- a/app/Controllers/Home.php +++ b/app/Controllers/Home.php @@ -6,7 +6,9 @@ class Home extends BaseController { public function index() { - $data['page_name'] = 'Dashboard'; - $this->render_page('dashboard', $data); + + $data['page_name'] = 'Dashboard'; + $this->render_page('dashboard', $data); + } } diff --git a/app/Controllers/Settings.php b/app/Controllers/Settings.php index e3ca2789..da66761d 100755 --- a/app/Controllers/Settings.php +++ b/app/Controllers/Settings.php @@ -8,9 +8,10 @@ class Settings extends BaseController { public function index() { - $session = \Config\Services::session(); - $session_role = $session->get('user_role'); - $session_bid = $session->get('business_id'); + helper('session'); + $session_role = get_user_role('user_role'); + $session_bid = get_business_id('business_id'); + $where = ['settings.isactive' => 1]; if (!empty($session_role) && $session_role !== "sadmin") { $where = ['settings.business_id' => $session_bid, 'settings.isactive' => 1]; @@ -45,22 +46,25 @@ class Settings extends BaseController ## To Save/Update Setting Data on DB. public function sitesetting_synchronization() { - $session = \Config\Services::session(); + helper('session'); + $session_bid = get_business_id('business_id'); + $session_uid = get_logged_user_id(); + $model = new SettingsModel(); $model->setTable('settings'); if ($this->request->is('post')) { $requestData = $this->request->getVar(); } - $requestData['business_id'] = $session->get('business_id'); - if ($requestData['user_id']) { + $requestData['business_id'] = $session_bid; + if ($requestData['setting_id']) { #edit - $requestData['updated_by'] = $session->get('book_id'); + $requestData['updated_by'] = $session_uid; $requestData['isactive'] = isset($requestData['isactive']) && $requestData['isactive'] == 'on' ? 1 : 0; - $model->saveData($requestData, $requestData['user_id']); + $model->saveData($requestData, $requestData['setting_id']); $alert_message = "Site Settings details successfully updated."; } else { #add - $requestData['created_by'] = $session->get('user_id'); + $requestData['created_by'] = $session_uid; $requestData['isactive'] = 1; $model->saveData($requestData, null); $alert_message = "Site Settings details successfully created."; diff --git a/app/Controllers/Users.php b/app/Controllers/Users.php index b73a5217..13f2eca4 100755 --- a/app/Controllers/Users.php +++ b/app/Controllers/Users.php @@ -9,9 +9,10 @@ class Users extends BaseController ## For User Listing public function index() { - $session = \Config\Services::session(); - $session_role = $session->get('user_role'); - $session_bid = $session->get('business_id'); + helper('session'); + + $session_role = get_user_role('user_role'); + $session_bid = get_business_id('business_id'); $where = ['users.isactive' => 1]; if (!empty($session_role) && $session_role !== "sadmin") { @@ -45,16 +46,18 @@ class Users extends BaseController ## To Save/Update User Data on DB. public function user_synchronization() { - $session = \Config\Services::session(); + helper('session'); + $session_bid = get_business_id('business_id'); + $session_uid = get_logged_user_id(); $model = new UsersModel(); $model->setTable('users'); if ($this->request->is('post')) { $requestData = $this->request->getVar(); } - $requestData['business_id'] = $session->get('business_id'); + $requestData['business_id'] = $session_bid; if ($requestData['user_id']) { #edit - $requestData['updated_by'] = $session->get('user_id'); + $requestData['updated_by'] = $session_uid; $requestData['isactive'] = isset($requestData['isactive']) && $requestData['isactive'] == 'on' ? 1 : 0; unset($requestData['password']); $model->saveData($requestData, $requestData['user_id']); @@ -63,7 +66,7 @@ class Users extends BaseController #add $hash_password = password_hash($requestData['password'], PASSWORD_DEFAULT); $requestData['password'] = $hash_password; - $requestData['created_by'] = $session->get('user_id'); + $requestData['created_by'] = $session_uid; $requestData['isactive'] = 1; $model->saveData($requestData, null); $alert_message = "User successfully created."; diff --git a/app/Helpers/session_helper.php b/app/Helpers/session_helper.php new file mode 100644 index 00000000..5632ee6d --- /dev/null +++ b/app/Helpers/session_helper.php @@ -0,0 +1,90 @@ +get('user_id');die(); + return session()->get('user_id'); + } +} + +if (!function_exists('get_logged_user_id')) { + function get_logged_user_id() + { + return session('user_id'); + } +} + +if (!function_exists('set_logged_user')) { + function set_logged_user_id($userId) + { + session()->set('user_id', $userId); + } +} + +if (!function_exists('unset_logged_user')) { + function unset_logged_user() + { + session()->remove('user_id'); + } +} + +if (!function_exists('get_logged_name')) { + function get_logged_name() + { + return session('user_name'); + } +} + +if (!function_exists('set_logged_name')) { + function set_logged_name($userName) + { + session()->set('user_name', $userName); + } +} + +if (!function_exists('get_logged_name')) { + function get_logged_name() + { + return session('user_name'); + } +} + +if (!function_exists('set_user_role')) { + function set_user_role($userRole) + { + session()->set('user_role', $userRole); + } +} + +if (!function_exists('get_user_role')) { + function get_user_role() + { + return session('user_role'); + } +} + +if (!function_exists('set_business_id')) { + function set_business_id($businessId) + { + session()->set('business_id', $businessId); + } +} + +if (!function_exists('get_business_id')) { + function get_business_id() + { + return session('business_id'); + } +} + +if (!function_exists('is_session_destroy')) { + function is_session_destroy() + { + session()->destroy(); + } +} + +?> \ No newline at end of file diff --git a/app/Views/template/topbar.php b/app/Views/template/topbar.php index 697bb884..38733909 100644 --- a/app/Views/template/topbar.php +++ b/app/Views/template/topbar.php @@ -252,7 +252,7 @@ - + " class="dropdown-item notify-item"> Logout