From 92c1c162af33cb6950d5feb58a1a981c9076504b Mon Sep 17 00:00:00 2001 From: DaneEveritt Date: Sat, 18 Jun 2022 12:07:32 -0400 Subject: [PATCH] Code cleanup for facades --- app/Facades/Activity.php | 14 -- app/Facades/LogBatch.php | 6 - app/Facades/LogTarget.php | 7 - .../AccountSubject.php} | 4 +- .../ServerSubject.php} | 4 +- app/Models/ApiKey.php | 2 +- config/app.php | 5 + config/ide-helper.php | 175 ------------------ routes/api-client.php | 8 +- 9 files changed, 14 insertions(+), 211 deletions(-) rename app/Http/Middleware/{AccountActivitySubject.php => Activity/AccountSubject.php} (86%) rename app/Http/Middleware/{ServerActivitySubject.php => Activity/ServerSubject.php} (92%) delete mode 100644 config/ide-helper.php diff --git a/app/Facades/Activity.php b/app/Facades/Activity.php index febeccd8d..9297153af 100644 --- a/app/Facades/Activity.php +++ b/app/Facades/Activity.php @@ -3,22 +3,8 @@ namespace Pterodactyl\Facades; use Illuminate\Support\Facades\Facade; -use Illuminate\Database\Eloquent\Model; use Pterodactyl\Services\Activity\ActivityLogService; -/** - * @method static ActivityLogService anonymous() - * @method static ActivityLogService event(string $action) - * @method static ActivityLogService description(?string $description) - * @method static ActivityLogService subject(Model|Model[] $subject) - * @method static ActivityLogService actor(Model $actor) - * @method static ActivityLogService withRequestMetadata() - * @method static ActivityLogService property(string|array $key, mixed $value = null) - * @method static \Pterodactyl\Models\ActivityLog log(string $description = null) - * @method static ActivityLogService clone() - * @method static void reset() - * @method static mixed transaction(\Closure $callback) - */ class Activity extends Facade { protected static function getFacadeAccessor() diff --git a/app/Facades/LogBatch.php b/app/Facades/LogBatch.php index 3f88679ad..fedfde125 100644 --- a/app/Facades/LogBatch.php +++ b/app/Facades/LogBatch.php @@ -5,12 +5,6 @@ namespace Pterodactyl\Facades; use Illuminate\Support\Facades\Facade; use Pterodactyl\Services\Activity\AcitvityLogBatchService; -/** - * @method static ?string uuid() - * @method static void start() - * @method static void end() - * @method static mixed transaction(\Closure $callback) - */ class LogBatch extends Facade { protected static function getFacadeAccessor() diff --git a/app/Facades/LogTarget.php b/app/Facades/LogTarget.php index 82f916273..18e356e60 100644 --- a/app/Facades/LogTarget.php +++ b/app/Facades/LogTarget.php @@ -5,13 +5,6 @@ namespace Pterodactyl\Facades; use Illuminate\Support\Facades\Facade; use Pterodactyl\Services\Activity\ActivityLogTargetableService; -/** - * @method static void setActor(\Illuminate\Database\Eloquent\Model $actor) - * @method static void setSubject(\Illuminate\Database\Eloquent\Model $subject) - * @method static \Illuminate\Database\Eloquent\Model|null actor() - * @method static \Illuminate\Database\Eloquent\Model|null subject() - * @method static void reset() - */ class LogTarget extends Facade { protected static function getFacadeAccessor() diff --git a/app/Http/Middleware/AccountActivitySubject.php b/app/Http/Middleware/Activity/AccountSubject.php similarity index 86% rename from app/Http/Middleware/AccountActivitySubject.php rename to app/Http/Middleware/Activity/AccountSubject.php index d35a5a645..99db8c83a 100644 --- a/app/Http/Middleware/AccountActivitySubject.php +++ b/app/Http/Middleware/Activity/AccountSubject.php @@ -1,12 +1,12 @@ Illuminate\Support\Facades\URL::class, 'Validator' => Illuminate\Support\Facades\Validator::class, 'View' => Illuminate\Support\Facades\View::class, + + // Custom Facades + 'Activity' => Pterodactyl\Facades\Activity::class, + 'LogBatch' => Pterodactyl\Facades\LogBatch::class, + 'LogTarget' => Pterodactyl\Facades\LogTarget::class, ], ]; diff --git a/config/ide-helper.php b/config/ide-helper.php deleted file mode 100644 index 5922f533c..000000000 --- a/config/ide-helper.php +++ /dev/null @@ -1,175 +0,0 @@ - '_ide_helper', - 'format' => 'php', - - /* - |-------------------------------------------------------------------------- - | Fluent helpers - |-------------------------------------------------------------------------- - | - | Set to true to generate commonly used Fluent methods - | - */ - - 'include_fluent' => true, - - /* - |-------------------------------------------------------------------------- - | Write Model Magic methods - |-------------------------------------------------------------------------- - | - | Set to false to disable write magic methods of model - | - */ - - 'write_model_magic_where' => true, - - /* - |-------------------------------------------------------------------------- - | Helper files to include - |-------------------------------------------------------------------------- - | - | Include helper files. By default not included, but can be toggled with the - | -- helpers (-H) option. Extra helper files can be included. - | - */ - - 'include_helpers' => false, - - 'helper_files' => [ - base_path() . '/vendor/laravel/framework/src/Illuminate/Support/helpers.php', - ], - - /* - |-------------------------------------------------------------------------- - | Model locations to include - |-------------------------------------------------------------------------- - | - | Define in which directories the ide-helper:models command should look - | for models. - | - */ - - 'model_locations' => [ - 'app/Models', - ], - - /* - |-------------------------------------------------------------------------- - | Extra classes - |-------------------------------------------------------------------------- - | - | These implementations are not really extended, but called with magic functions - | - */ - - 'extra' => [ - 'Eloquent' => ['Illuminate\Database\Eloquent\Builder', 'Illuminate\Database\Query\Builder'], - 'Session' => ['Illuminate\Session\Store'], - ], - - 'magic' => [ - 'Log' => [ - 'debug' => 'Monolog\Logger::addDebug', - 'info' => 'Monolog\Logger::addInfo', - 'notice' => 'Monolog\Logger::addNotice', - 'warning' => 'Monolog\Logger::addWarning', - 'error' => 'Monolog\Logger::addError', - 'critical' => 'Monolog\Logger::addCritical', - 'alert' => 'Monolog\Logger::addAlert', - 'emergency' => 'Monolog\Logger::addEmergency', - ], - ], - - /* - |-------------------------------------------------------------------------- - | Interface implementations - |-------------------------------------------------------------------------- - | - | These interfaces will be replaced with the implementing class. Some interfaces - | are detected by the helpers, others can be listed below. - | - */ - - 'interfaces' => [ - ], - - /* - |-------------------------------------------------------------------------- - | Support for custom DB types - |-------------------------------------------------------------------------- - | - | This setting allow you to map any custom database type (that you may have - | created using CREATE TYPE statement or imported using database plugin - | / extension to a Doctrine type. - | - | Each key in this array is a name of the Doctrine2 DBAL Platform. Currently valid names are: - | 'postgresql', 'db2', 'drizzle', 'mysql', 'oracle', 'sqlanywhere', 'sqlite', 'mssql' - | - | This name is returned by getName() method of the specific Doctrine/DBAL/Platforms/AbstractPlatform descendant - | - | The value of the array is an array of type mappings. Key is the name of the custom type, - | (for example, "jsonb" from Postgres 9.4) and the value is the name of the corresponding Doctrine2 type (in - | our case it is 'json_array'. Doctrine types are listed here: - | http://doctrine-dbal.readthedocs.org/en/latest/reference/types.html - | - | So to support jsonb in your models when working with Postgres, just add the following entry to the array below: - | - | "postgresql" => array( - | "jsonb" => "json_array", - | ), - | - */ - 'custom_db_types' => [ - ], - - /* - |-------------------------------------------------------------------------- - | Support for camel cased models - |-------------------------------------------------------------------------- - | - | There are some Laravel packages (such as Eloquence) that allow for accessing - | Eloquent model properties via camel case, instead of snake case. - | - | Enabling this option will support these packages by saving all model - | properties as camel case, instead of snake case. - | - | For example, normally you would see this: - | - | * @property \Carbon\Carbon $created_at - | * @property \Carbon\Carbon $updated_at - | - | With this enabled, the properties will be this: - | - | * @property \Carbon\Carbon $createdAt - | * @property \Carbon\Carbon $updatedAt - | - | Note, it is currently an all-or-nothing option. - | - */ - 'model_camel_case_properties' => false, - - /* - |-------------------------------------------------------------------------- - | Property Casts - |-------------------------------------------------------------------------- - | - | Cast the given "real type" to the given "type". - | - */ - 'type_overrides' => [ - 'integer' => 'int', - 'boolean' => 'bool', - ], -]; diff --git a/routes/api-client.php b/routes/api-client.php index b839e2aa7..64ceecf3e 100644 --- a/routes/api-client.php +++ b/routes/api-client.php @@ -2,8 +2,8 @@ use Illuminate\Support\Facades\Route; use Pterodactyl\Http\Controllers\Api\Client; -use Pterodactyl\Http\Middleware\ServerActivitySubject; -use Pterodactyl\Http\Middleware\AccountActivitySubject; +use Pterodactyl\Http\Middleware\Activity\ServerSubject; +use Pterodactyl\Http\Middleware\Activity\AccountSubject; use Pterodactyl\Http\Middleware\RequireTwoFactorAuthentication; use Pterodactyl\Http\Middleware\Api\Client\Server\ResourceBelongsToServer; use Pterodactyl\Http\Middleware\Api\Client\Server\AuthenticateServerAccess; @@ -19,7 +19,7 @@ use Pterodactyl\Http\Middleware\Api\Client\Server\AuthenticateServerAccess; Route::get('/', [Client\ClientController::class, 'index'])->name('api:client.index'); Route::get('/permissions', [Client\ClientController::class, 'permissions']); -Route::prefix('/account')->middleware(AccountActivitySubject::class)->group(function () { +Route::prefix('/account')->middleware(AccountSubject::class)->group(function () { Route::prefix('/')->withoutMiddleware(RequireTwoFactorAuthentication::class)->group(function () { Route::get('/', [Client\AccountController::class, 'index'])->name('api:client.account'); Route::get('/two-factor', [Client\TwoFactorController::class, 'index']); @@ -54,7 +54,7 @@ Route::prefix('/account')->middleware(AccountActivitySubject::class)->group(func Route::group([ 'prefix' => '/servers/{server}', 'middleware' => [ - ServerActivitySubject::class, + ServerSubject::class, AuthenticateServerAccess::class, ResourceBelongsToServer::class, ],