Skip to content

Commit

Permalink
fix: Panel Installer (#951)
Browse files Browse the repository at this point in the history
  • Loading branch information
1day2die committed Jul 10, 2024
2 parents e52ab1f + 9b989a5 commit f865163
Show file tree
Hide file tree
Showing 9 changed files with 646 additions and 349 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# Ignore dependencies and cache
/.idea
/node_modules
/vendor
/storage/*.key
Expand Down
49 changes: 49 additions & 0 deletions app/Console/Commands/GetSettingCommand.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
<?php

namespace App\Console\Commands;

use Illuminate\Console\Command;

class GetSettingCommand extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'settings:get {class : Settings Class (Example: GeneralSettings)} {key} {--sameline : Outputs the result without newline, useful for implementing in scripts.}';

/**
* The console command description.
*
* @var string
*/
protected $description = 'Gets value of a setting key and decrypts it if needed.';

/**
* Execute the console command.
*
* @return int
*/
public function handle()
{

$class = $this->argument('class');
$key = $this->argument('key');
$sameline = $this->option('sameline');

try {
$settings_class = "App\\Settings\\$class";
$settings = new $settings_class();

$this->output->write($settings->$key, !$sameline);

return Command::SUCCESS;
} catch (\Throwable $th) {
$this->error('Error: ' . $th->getMessage());
return Command::FAILURE;
}

return Command::SUCCESS;
}
}
52 changes: 52 additions & 0 deletions app/Console/Commands/SetSettingCommand.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
<?php

namespace App\Console\Commands;

use Exception;
use Illuminate\Console\Command;

class SetSettingCommand extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'settings:set {class : Settings Class (Example: GeneralSettings)} {key : Unique setting key} {value : Value to set}';

/**
* The console command description.
*
* @var string
*/
protected $description = 'Set value of a setting key.';

/**
* Execute the console command.
*
* @return int
*/
public function handle()
{

$class = $this->argument('class');
$key = $this->argument('key');
$value = $this->argument('value');

try {
$settings_class = "App\\Settings\\$class";
$settings = new $settings_class();

$settings->$key = $value;

$settings->save();

$this->info("Successfully updated '$key'.");
} catch (\Throwable $th) {
$this->error('Error: ' . $th->getMessage());
return Command::FAILURE;
}

return Command::SUCCESS;
}
}
6 changes: 2 additions & 4 deletions app/Http/Kernel.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,7 @@

use App\Http\Middleware\ApiAuthToken;
use App\Http\Middleware\CheckSuspended;
use App\Http\Middleware\isAdmin;
use App\Http\Middleware\isMod;
use App\Http\Middleware\InstallerLock;
use App\Http\Middleware\LastSeen;
use Illuminate\Foundation\Http\Kernel as HttpKernel;

Expand Down Expand Up @@ -36,6 +35,7 @@ class Kernel extends HttpKernel
*/
protected $middlewareGroups = [
'web' => [
InstallerLock::class,
\App\Http\Middleware\EncryptCookies::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
\Illuminate\Session\Middleware\StartSession::class,
Expand Down Expand Up @@ -70,8 +70,6 @@ class Kernel extends HttpKernel
'signed' => \Illuminate\Routing\Middleware\ValidateSignature::class,
'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class,
'admin' => isAdmin::class,
'moderator' => isMod::class,
'api.token' => ApiAuthToken::class,
'checkSuspended' => CheckSuspended::class,
'role' => \Spatie\Permission\Middlewares\RoleMiddleware::class,
Expand Down
24 changes: 24 additions & 0 deletions app/Http/Middleware/InstallerLock.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
<?php

namespace App\Http\Middleware;

use Closure;
use Illuminate\Http\Request;

class InstallerLock
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure(\Illuminate\Http\Request): (\Illuminate\Http\Response|\Illuminate\Http\RedirectResponse) $next
* @return \Illuminate\Http\Response|\Illuminate\Http\RedirectResponse
*/
public function handle(Request $request, Closure $next)
{
if (!file_exists(base_path()."/install.lock")){
return redirect('/install');
}
return $next($request);
}
}
2 changes: 2 additions & 0 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@
"require": {
"php": "^8.1",
"ext-intl": "*",
"ext-mysqli": "*",
"ext-curl": "*",
"biscolab/laravel-recaptcha": "^5.4",
"doctrine/dbal": "^3.5.3",
"guzzlehttp/guzzle": "^7.5",
Expand Down
Loading

0 comments on commit f865163

Please sign in to comment.