diff --git a/app/Config/Routes.php b/app/Config/Routes.php index 9d4811ef..d15d9658 100644 --- a/app/Config/Routes.php +++ b/app/Config/Routes.php @@ -41,14 +41,18 @@ $routes->get('dashboard/', 'Home::index'); # Users Routes $routes->get("user_list/", "Users::index"); -// $routes->get('user-list/', 'Users::index', ['as' => 'user_list']); $routes->get("user_page/(:any)", "Users::user_page/$1"); $routes->post("user_synchronization", "Users::user_synchronization"); # Books Routes $routes->get("book_list/", "Books::index"); -$routes->get("add_book/", "Books::add_book"); -$routes->get("edit_book/", "Books::edit_book"); +$routes->get("book_page/(:any)", "Books::book_page/$1"); +$routes->post("book_synchronization", "Books::book_synchronization"); + +# Site-Setting Routes +$routes->get("sitesetting_list/", "Settings::index"); +$routes->get("sitesetting_page/(:any)", "Settings::sitesetting_page/$1"); +$routes->post("sitesetting_synchronization", "Settings::sitesetting_synchronization"); # Business Routes $routes->get("business_list/", "Business::index"); 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 c932d277..f29614e3 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,5 +24,52 @@ 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 + public function book_page($id) + { + if ($id === '0') { + $data['page_name'] = 'Add Book'; + $data['details'] = []; + } else if ($id !== '0') { + $data['page_name'] = 'Edit Book'; + $model = new BooksModel(); + $model->setTable('books'); + $details = $model->where(['book_id' => $id, 'isactive' => 1])->first(); + $data['details'] = $details; + } + $this->render_page('book_form', $data); + } + + + ## To Save/Update Book Data on DB. + public function book_synchronization() + { + helper('session'); + $model = new BooksModel(); + $model->setTable('books'); + if ($this->request->is('post')) { + $requestData = $this->request->getVar(); + } + $requestData['business_id'] = get_business_id('business_id'); + if ($requestData['book_id']) { + #edit + $requestData['updated_by'] = get_logged_user_id(); + $requestData['isactive'] = isset($requestData['isactive']) && $requestData['isactive'] == 'on' ? 1 : 0; + $model->saveData($requestData, $requestData['book_id']); + $alert_message = "Book details successfully updated."; + } else { + #add + $requestData['created_by'] = get_logged_user_id(); + $requestData['isactive'] = 1; + $model->saveData($requestData, null); + $alert_message = "Book details successfully created."; + } + return redirect()->route('book_list')->with('success', $alert_message); } } 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 new file mode 100755 index 00000000..794cc99c --- /dev/null +++ b/app/Controllers/Settings.php @@ -0,0 +1,74 @@ + 1]; + if (!empty($session_role) && $session_role !== "sadmin") { + $where = ['settings.business_id' => $session_bid, 'settings.isactive' => 1]; + } + + $model = new SettingsModel(); + $model->setTable('settings'); + $sitesetting_details = $model->where($where)->orderBy('setting_id', 'DESC')->findAll(); + $data['page_name'] = 'Site Settings Details'; + $data['details'] = $sitesetting_details; + $data['session_role'] = $session_role; + $this->render_page('setting_list', $data); + } + + ## To Load Settings Add/Update page + public function sitesetting_page($id) + { + if ($id === '0') { + $data['page_name'] = 'Add Site Settings'; + $data['details'] = []; + } else if ($id !== '0') { + $data['page_name'] = 'Edit Site Settings'; + $model = new SettingsModel(); + $model->setTable('settings'); + $details = $model->where(['setting_id' => $id, 'isactive' => 1])->first(); + $data['details'] = $details; + } + $this->render_page('setting_form', $data); + } + + + ## To Save/Update Setting Data on DB. + public function sitesetting_synchronization() + { + 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_bid; + if ($requestData['setting_id']) { + #edit + $requestData['updated_by'] = $session_uid; + $requestData['isactive'] = isset($requestData['isactive']) && $requestData['isactive'] == 'on' ? 1 : 0; + $model->saveData($requestData, $requestData['setting_id']); + $alert_message = "Site Settings details successfully updated."; + } else { + #add + $requestData['created_by'] = $session_uid; + $requestData['isactive'] = 1; + $model->saveData($requestData, null); + $alert_message = "Site Settings details successfully created."; + } + return redirect()->route('sitesetting_list'); + } +} diff --git a/app/Controllers/Users.php b/app/Controllers/Users.php index 1c3586f0..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") { @@ -38,23 +39,25 @@ class Users extends BaseController $edit_user_details = $model->where(['user_id' => $id, 'isactive' => 1])->first(); $data['details'] = $edit_user_details; } - $this->render_page('user', $data); + $this->render_page('user_form', $data); } ## 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/Models/BooksModel.php b/app/Models/BooksModel.php index 4f35b116..e0dada6b 100644 --- a/app/Models/BooksModel.php +++ b/app/Models/BooksModel.php @@ -7,4 +7,15 @@ class BooksModel extends Model protected $primaryKey = 'book_id'; protected $allowedFields = ['book_id','title','cover_picture','publication_date','publisher','genre','language','description','page_count','price','created_on','created_by','updated_on','updated_by','isactive','business_id']; + public function saveData($data, $id = null) + { + if ($id === null) { + // Insert new record + return $this->insert($data); + } else { + // Update existing record + return $this->update($id, $data); + } + } + } diff --git a/app/Models/SettingsModel.php b/app/Models/SettingsModel.php new file mode 100644 index 00000000..b801f2e4 --- /dev/null +++ b/app/Models/SettingsModel.php @@ -0,0 +1,22 @@ +insert($data); + } else { + // Update existing record + return $this->update($id, $data); + } + } + +} + diff --git a/app/Views/book_form.php b/app/Views/book_form.php new file mode 100644 index 00000000..b976378c --- /dev/null +++ b/app/Views/book_form.php @@ -0,0 +1,82 @@ +
+
+
+
+

+

+ getFlashdata('success')): ?> +
getFlashdata('success') ?>
+ +
" method="post"> +
+
+
+ + +
+
+
+
+ + +
+
+ + +
+
+
+
+ + +
+
+ + +
+
+ + +
+
+
+
+ + +
+
+
+
+ + +
+
+ + +
+
+ + + +
+ > + +
+
+ +
+ + + +
+
+
+
+
+
+
+ \ No newline at end of file diff --git a/app/Views/book_list.php b/app/Views/book_list.php index c7f73f48..abd31d7c 100644 --- a/app/Views/book_list.php +++ b/app/Views/book_list.php @@ -2,9 +2,9 @@
- +

@@ -23,6 +23,7 @@ Price of the Book Description Status + Action @@ -34,6 +35,7 @@ $class = 'badge badge-soft-danger'; $message = 'In-Active'; } + $edit_page_route = base_url()."book_page/".$row['book_id']; ?> @@ -46,6 +48,13 @@ + +
    +
  • + +
  • +
+ diff --git a/app/Views/setting_form.php b/app/Views/setting_form.php new file mode 100644 index 00000000..67d5d026 --- /dev/null +++ b/app/Views/setting_form.php @@ -0,0 +1,139 @@ +
+
+
+
+

+

+ + getFlashdata('success')): ?> +
getFlashdata('success') ?>
+ +
" method="post"> +
+
+
+ + +
+
+ + +
+
+
+
+ + +
+
+ + +
+
+
+
+ + +
+
+ + +
+
+
+
+ + +
+
+ + +
+
+
+
+ + +
+
+ + +
+
+
+
+ + +
+
+ + +
+
+
+
+ + +
+
+ + +
+
+
+
+ + +
+
+ + +
+
+ + +
+
+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + + +
+ > + +
+
+ +
+ + + +
+
+
+
+
+
+
+ \ No newline at end of file diff --git a/app/Views/setting_list.php b/app/Views/setting_list.php new file mode 100644 index 00000000..6ddece15 --- /dev/null +++ b/app/Views/setting_list.php @@ -0,0 +1,63 @@ +
+
+
+
+ +
+

+ getFlashdata('success')): ?> +
getFlashdata('success') ?>
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Site NameSite TitleAdmin emailMobile NumberCopyrightStatusAction
+ + +
    +
  • + +
  • +
+
+
+
+
+
+
+ \ No newline at end of file diff --git a/app/Views/template/header.php b/app/Views/template/header.php index 8b4ace90..200b115d 100644 --- a/app/Views/template/header.php +++ b/app/Views/template/header.php @@ -130,6 +130,12 @@ Books +
  • + "> + + Site Setting + +
  • "> 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 diff --git a/app/Views/user.php b/app/Views/user_form.php similarity index 100% rename from app/Views/user.php rename to app/Views/user_form.php diff --git a/app/Views/user_list.php b/app/Views/user_list.php index 85488662..85be1a9a 100644 --- a/app/Views/user_list.php +++ b/app/Views/user_list.php @@ -51,7 +51,11 @@ - +
      +
    • + +
    • +