diff --git a/app/Config/Autoload.php b/app/Config/Autoload.php
index a01b35cc..62937931 100755
--- a/app/Config/Autoload.php
+++ b/app/Config/Autoload.php
@@ -47,6 +47,7 @@ class Autoload extends AutoloadConfig
public $psr4 = [
APP_NAMESPACE => APPPATH, // For custom app namespace
'Config' => APPPATH . 'Config',
+ 'Helpers' => APPPATH . 'Helpers'
];
/**
diff --git a/app/Config/Routes.php b/app/Config/Routes.php
index b0a9deb0..9d1e8141 100644
--- a/app/Config/Routes.php
+++ b/app/Config/Routes.php
@@ -7,9 +7,9 @@ use CodeIgniter\Router\RouteCollection;
*/
// $routes->get('/', 'LoginController::index');
$routes->get('/test', 'Home::test');
-$routes->get('/login', 'LoginController::index');
+$routes->get('/login', 'LoginController::index');///auth/google
$routes->get('/logout', 'LoginController::logout');
-$routes->get('/LoginController/receiveGoogleOAuthResponse', 'LoginController::receiveGoogleOAuthResponse');
+$routes->get('/oauth2callback', 'LoginController::receiveGoogleOAuthResponse');
$routes->group("/user", ["filter" => "authMVC"], function($routes){
diff --git a/app/Config/Services.php b/app/Config/Services.php
index 797c4e24..e9a21d37 100644
--- a/app/Config/Services.php
+++ b/app/Config/Services.php
@@ -4,6 +4,8 @@ namespace Config;
use CodeIgniter\Config\BaseService;
use App\Libraries\Slug;
+use App\Libraries\MyLogger;
+use App\Libraries\DataServiceSqlite;
use App\Controllers\Home;
/**
@@ -39,5 +41,24 @@ class Services extends BaseService
return new Home();
}
+
+ public static function mylogger($getShared = true)
+ {
+ if ($getShared) {
+ return static::getSharedInstance('mylogger');
+ }
+
+ return new MyLogger();
+ }
+
+
+ public static function dataServiceSqlite($getShared = true)
+ {
+ if ($getShared) {
+ return static::getSharedInstance('dataServiceSqlite');
+ }
+
+ return new DataServiceSqlite();
+ }
}
diff --git a/app/Controllers/BaseController.php b/app/Controllers/BaseController.php
index a3cb2655..c53dc7bb 100644
--- a/app/Controllers/BaseController.php
+++ b/app/Controllers/BaseController.php
@@ -46,6 +46,7 @@ abstract class BaseController extends Controller
/**
* @return void
*/
+ protected $session;
public function initController(RequestInterface $request, ResponseInterface $response, LoggerInterface $logger)
{
// Do Not Edit This Line
diff --git a/app/Controllers/LoginController.php b/app/Controllers/LoginController.php
index bf1ffe46..5de0cb5e 100644
--- a/app/Controllers/LoginController.php
+++ b/app/Controllers/LoginController.php
@@ -14,7 +14,9 @@ class LoginController extends BaseController
public function index(){
- $isLoggedIn = session()->get('isLoggedIn');
+ // $session_data = ['isLoggedIn' => True ,'userid' => '4'];
+ // set_session_data($session_data);
+ $isLoggedIn = check_session();
if ($isLoggedIn) {
return redirect()->to(base_url('/dashboard/view'));
@@ -25,6 +27,7 @@ class LoginController extends BaseController
public function receiveGoogleOAuthResponse()
{
+ //echo 'DONE';die();
$UserModel = new UserModal();
if ($this->request->getGet('code')) {
$code = (string) $this->request->getGet('code');
diff --git a/app/Controllers/UserController.php b/app/Controllers/UserController.php
index ccb8e578..a8dc7af7 100644
--- a/app/Controllers/UserController.php
+++ b/app/Controllers/UserController.php
@@ -15,9 +15,18 @@ use App\Models\TeamsModal;
class UserController extends AdminController
{
+
+ protected $myLogger;
+ public function __construct()
+ {
+ // helper('utility');
+ set_session_context('User');
+ $this->myLogger = \Config\Services::mylogger();
+ }
public function list()
{
+ $this->myLogger->logme('error','list {data} called',['data' => '9638527410']);
$model = new UserModal();
$data['UserList'] = $model->where('is_active', 1)->orderBy('id', 'DESC')->findAll();
echo view('layout/header');
diff --git a/app/Filters/HttpRequestLog.php b/app/Filters/HttpRequestLog.php
index 72a5a552..d17ad777 100644
--- a/app/Filters/HttpRequestLog.php
+++ b/app/Filters/HttpRequestLog.php
@@ -9,26 +9,20 @@ class HttpRequestLog implements FilterInterface
{
public function before(RequestInterface $request, $arguments = null)
{
- log_message('info', 'HttpRequestLog before');
+ // log_message('info', 'HttpRequestLog before');
$uuid = generate_uuid();
+ // echo $uuid;//die();
set_session_uuid($uuid);
- // echo $uuid.'
';
- // $slug = \Config\Services::slug();
- // $home = \Config\Services::home();
- // echo $home->testService();
- // // echo !check_session();// print_r($slug);die();
- // echo $slug->slugify('www.googl.com article no 5');die();
-
- // echo 'before HttpRequestLog'.'
'
+ $context = 'HTTP REQUEST';
+ $log = \Config\Services::mylogger();
+ $message = '{ip} - {platform} - {browser} - {method} - {endpoint} - {getparams} - {postparams} - REQ RECEIVED';
+ $log->logme('ERROR',$message,['context' => $context],1);
+
;
}
public function after(RequestInterface $request, ResponseInterface $response, $arguments = null)
{
- // Do something here
- // log_message('info', 'HttpRequestLog after');
- // echo 'last HttpRequestLog'.'
';
- // $this->session = \Config\Services::session();
- // echo $this->session->get('uuid');
+
}
}
\ No newline at end of file
diff --git a/app/Helpers/HttpRequestHelper.php b/app/Helpers/HttpRequestHelper.php
new file mode 100644
index 00000000..9850d42b
--- /dev/null
+++ b/app/Helpers/HttpRequestHelper.php
@@ -0,0 +1,25 @@
+ $request->getIPAddress(),
+ 'platform' => $request->getUserAgent()->getPlatform(),
+ 'browser' => ($request->getUserAgent()->getBrowser().' '.$request->getUserAgent()->getVersion()),
+ 'method' => $request->getMethod(),
+ 'endpoint' => $request->uri->getPath(),
+ 'getparams' => $request->uri->getSegments(),
+ 'postparams' => $request->getPost()
+ ];
+
+ $data['method'] = (isset($data['method']) ? strtoupper($data['method']) : $data['method']);
+ $data['getparams'] = is_array($data['getparams']) ? json_encode($data['getparams']) : $data['getparams'];
+ $data['postparams'] = is_array($data['postparams']) ? json_encode($data['postparams']) : $data['postparams'];
+ return $data;
+ }
+}
diff --git a/app/Helpers/session_helper.php b/app/Helpers/session_helper.php
index 8d568080..b42f04e7 100644
--- a/app/Helpers/session_helper.php
+++ b/app/Helpers/session_helper.php
@@ -50,7 +50,6 @@ if (!function_exists('check_permission')) {
if (!function_exists('set_session_uuid')) {
function set_session_uuid($uuid)
{
- // $CI =& get_instance();
$session = \Config\Services::session();
$session->set('uuid', $uuid);
}
@@ -59,9 +58,8 @@ if (!function_exists('set_session_uuid')) {
if (!function_exists('get_session_uuid')) {
function get_session_uuid()
{
- // $CI =& get_instance();
$session = \Config\Services::session();
- $session->get('uuid');
+ return $session->get('uuid');
}
}
@@ -73,3 +71,22 @@ if (!function_exists('set_session')) {
$session->set($data);
}
}
+
+
+if (!function_exists('set_session_context')) {
+ function set_session_context($context)
+ {
+ // $CI =& get_instance();
+ $session = \Config\Services::session();
+ $session->set('context',$context);
+ }
+}
+
+if (!function_exists('get_session_context')) {
+ function get_session_context()
+ {
+ // $CI =& get_instance();
+ $session = \Config\Services::session();
+ return $session->get('context');
+ }
+}
diff --git a/app/Helpers/uuid_helper.php b/app/Helpers/uuid_helper.php
index 4333047a..660f75e1 100644
--- a/app/Helpers/uuid_helper.php
+++ b/app/Helpers/uuid_helper.php
@@ -2,18 +2,18 @@
// File: app/Helpers/Uuid_helper.php
-if (!function_exists('generate_uuid')) {
- function generate_uuid($version = 4, $format = 'hex')
- {
- $data = random_bytes(16);
- // echo $data.'
';
- // Set version to 0100
- $data[6] = chr(ord($data[6]) & 0x0f | 0x40);
- // Set bits 6-7 to 10
- $data[8] = chr(ord($data[8]) & 0x3f | 0x80);
+// if (!function_exists('generate_uuid')) {
+// function generate_uuid($version = 4, $format = 'hex')
+// {
+// $data = random_bytes(16);
+// // echo $data.'
';
+// // Set version to 0100
+// $data[6] = chr(ord($data[6]) & 0x0f | 0x40);
+// // Set bits 6-7 to 10
+// $data[8] = chr(ord($data[8]) & 0x3f | 0x80);
- // Output the 36 character UUID.
- $uuid = vsprintf('%s%s-%s-%s-%s-%s%s%s', str_split(bin2hex($data), 4));
- return $uuid;
- }
-}
+// // Output the 36 character UUID.
+// $uuid = vsprintf('%s%s-%s-%s-%s-%s%s%s', str_split(bin2hex($data), 4));
+// return $uuid;
+// }
+// }
diff --git a/app/Libraries/DataServiceSqlite.php b/app/Libraries/DataServiceSqlite.php
new file mode 100644
index 00000000..226cba32
--- /dev/null
+++ b/app/Libraries/DataServiceSqlite.php
@@ -0,0 +1,89 @@
+sqliteDb = new PDO('sqlite:' . $dbPath);
+ $this->sqliteDb->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
+ $this->createDefaultTable();
+ } catch (\PDOException $e) {
+ // Database doesn't exist, create it
+ log_message('error', 'SQLite DB not found: ' . $e->getMessage());
+ try {
+ log_message('error', 'Creating SQLite DB: ');
+ $this->sqliteDb = new PDO('sqlite:' . $dbPath);
+ $this->sqliteDb->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
+
+ // Create default table
+ $this->createDefaultTable();
+ log_message('error', 'Creating SQLite DB doné');
+ } catch (\PDOException $e) {
+ log_message('error', 'Failed to create SQLite database: ' . $e->getMessage());
+ throw $e; // Re-throw to allow for further handling
+ }
+ }
+ }
+
+ // ... other methods ...
+
+ protected function createDefaultTable()
+ {
+ $sql = "CREATE TABLE IF NOT EXISTS http (
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
+ uuid TEXT,
+ ip TEXT,
+ platform TEXT,
+ browser TEXT,
+ method TEXT,
+ endpoint TEXT,
+ getparams TEXT,
+ postparams TEXT,
+ createdon DATETIME DEFAULT CURRENT_TIMESTAMP
+ )";
+
+ $this->sqliteDb->exec($sql);
+
+ $sql = "CREATE TABLE IF NOT EXISTS log (
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
+ context TEXT,
+ uuid TEXT,
+ msg TEXT,
+ createdon DATETIME DEFAULT CURRENT_TIMESTAMP
+ )";
+
+ $this->sqliteDb->exec($sql);
+ }
+
+ public function insertData(array $data, string $tableName): bool
+ {
+ log_message('error', 'SQLite insert called: ');
+ unset($data['context']);
+ $columns = implode(', ', array_keys($data));
+ // print_r($columns);
+ $placeholders = implode(', ', array_fill(0, count($data), '?'));
+
+ $sql = "INSERT INTO $tableName ($columns) VALUES ($placeholders)";
+
+ try {
+ $stmt = $this->sqliteDb->prepare($sql);
+ $stmt->execute(array_values($data));
+ return true;
+ } catch (\PDOException $e) {
+ log_message('error', 'SQLite insert failed: ' . $e->getMessage());
+ return false;
+ }
+ }
+
+}
+
diff --git a/app/Libraries/MyLogger.php b/app/Libraries/MyLogger.php
new file mode 100644
index 00000000..efa401d5
--- /dev/null
+++ b/app/Libraries/MyLogger.php
@@ -0,0 +1,53 @@
+ get_session_uuid()]);
+ // print_r($context);die();
+ // echo isset($context['context']) ? $context['context'] : $this->context;die();
+ $context['context'] = isset($context['context']) ? $context['context'] : get_session_context();
+
+ if($type == 1) //http log only
+ {
+ $path = WRITEPATH . 'logs/http';
+ $fileHandler = new FileHandler(['path' => $path]);
+ //get current request info
+ $requestInfo = HttpRequestHelper::getRequestInfo();
+ $context = array_merge($context,$requestInfo);
+ // print_r($context);//die();
+ $message = preg_replace_callback('/\{(.*?)\}/', function($matches) use ($context) { return $context[$matches[1]]; }, $message);
+ // echo $message;die();
+ $fileHandler->handle($level,$message);
+
+
+ }
+
+ if($type == 0) // default CI log
+ {
+ log_message($level,$message,$context);
+
+ }
+
+ }
+
+
+}
diff --git a/writable/cache/.gitkeep b/writable/cache/.gitkeep
new file mode 100644
index 00000000..b702fbc3
--- /dev/null
+++ b/writable/cache/.gitkeep
@@ -0,0 +1,11 @@
+
+
+
Directory access is forbidden.
+ + + diff --git a/writable/debugbar/.gitkeep b/writable/debugbar/.gitkeep index e69de29b..b702fbc3 100755 --- a/writable/debugbar/.gitkeep +++ b/writable/debugbar/.gitkeep @@ -0,0 +1,11 @@ + + + +Directory access is forbidden.
+ + + diff --git a/writable/logs/.gitkeep b/writable/logs/.gitkeep new file mode 100644 index 00000000..b702fbc3 --- /dev/null +++ b/writable/logs/.gitkeep @@ -0,0 +1,11 @@ + + + +Directory access is forbidden.
+ + + diff --git a/writable/session/.gitkeep b/writable/session/.gitkeep new file mode 100644 index 00000000..b702fbc3 --- /dev/null +++ b/writable/session/.gitkeep @@ -0,0 +1,11 @@ + + + +Directory access is forbidden.
+ + + diff --git a/writable/uploads/.gitkeep b/writable/uploads/.gitkeep new file mode 100644 index 00000000..b702fbc3 --- /dev/null +++ b/writable/uploads/.gitkeep @@ -0,0 +1,11 @@ + + + +Directory access is forbidden.
+ + +