diff --git a/app/controllers/AdminController.php b/app/controllers/AdminController.php index 2a4c0f7..f844fd1 100644 --- a/app/controllers/AdminController.php +++ b/app/controllers/AdminController.php @@ -2,6 +2,7 @@ namespace App\Controllers; +use App\Classes\Config; use App\Classes\User; class AdminController extends PageController { @@ -12,6 +13,37 @@ class AdminController extends PageController { parent::view('', 'Admin'); } + public function developmentAction(): void + { + if (Config::c('DEVELOPMENT_MODE') == 'cloudflare') { + $token = Config::c('DEVELOPMENT_MODE_TOKEN'); + $zone = Config::c('DEVELOPMENT_MODE_ZONE'); + + $url = "https://api.cloudflare.com/client/v4/zones/$zone/settings/development_mode"; + $headers = [ + "Authorization: Bearer $token", + "Content-Type: application/json" + ]; + $data = '{"value": "on"}'; + + $curl = curl_init(); + curl_setopt($curl, CURLOPT_URL, $url); + curl_setopt($curl, CURLOPT_HTTPHEADER, $headers); + curl_setopt($curl, CURLOPT_POSTFIELDS, $data); + curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'PATCH'); + curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); + // curl_setopt($curl, CURLINFO_HEADER_OUT, 1); + + $response = curl_exec($curl); + // $info = curl_getinfo($curl, CURLINFO_HEADER_OUT); + + curl_close($curl); + } + + echo $response; + // echo $info; + } + public function toggleAction(): void { User::toggle(); echo User::getToggle() ? '1' : '0'; diff --git a/app/views/layouts/default.php b/app/views/layouts/default.php index 6674815..3262d8d 100644 --- a/app/views/layouts/default.php +++ b/app/views/layouts/default.php @@ -22,7 +22,7 @@ - + <?= ($this->escape)($this->pageTitle); ?><?= $this->pageTitle != '' ? ' - ' : '' ?>Rick van Vonderen diff --git a/app/views/partials/admin.php b/app/views/partials/admin.php index 533ee19..5d35318 100644 --- a/app/views/partials/admin.php +++ b/app/views/partials/admin.php @@ -22,6 +22,9 @@
- Syntax Highlighting +
+
Development mode  
+
- Log out diff --git a/app/views/partials/script.php b/app/views/partials/script.php index a30d14b..a55fa2f 100644 --- a/app/views/partials/script.php +++ b/app/views/partials/script.php @@ -23,6 +23,6 @@ - + - + diff --git a/config.php.example b/config.php.example index 12e6609..3e9a032 100644 --- a/config.php.example +++ b/config.php.example @@ -14,4 +14,8 @@ return [ 'MAIL_NAME' => '', 'MAIL_USERNAME' => '', 'MAIL_PASSWORD' => '', + + 'DEVELOPMENT_MODE' => '', + 'DEVELOPMENT_MODE_TOKEN' => '', + 'DEVELOPMENT_MODE_ZONE' => '', ]; diff --git a/public/js/app.js b/public/js/app.js index 1b56c17..9412469 100644 --- a/public/js/app.js +++ b/public/js/app.js @@ -227,6 +227,24 @@ $(document).ready(function() { }); +//------------------------------------------ + + // Developer mode + $('#development-mode').on('click', function(e) + { + $.get('/admin/toggle-development-mode').done(function(data) + { + const response = JSON.parse(data); + if (response.success == true) { + alert("Development mode has been turned: " + response.result.value); + } + else { + alert("Development mode could not be enabled!") + console.log(data); + } + }); + }); + }); // @Todo diff --git a/route.php b/route.php index d26cd7c..6f6d038 100644 --- a/route.php +++ b/route.php @@ -21,6 +21,7 @@ return [ ['/logout', 'LoginController', 'logout', ''], ['/admin', 'AdminController', '', ''], ['/admin/toggle', 'AdminController', 'toggle', ''], + ['/admin/toggle-development-mode', 'AdminController', 'development', ''], ['/admin/syntax-highlighting', 'AdminController', 'syntax', ''], ['/test', 'TestController', '', ''], // ["", "", "", ""],