Code cleanup for facades

This commit is contained in:
DaneEveritt 2022-06-18 12:07:32 -04:00
parent 6ffe5730da
commit 92c1c162af
No known key found for this signature in database
GPG key ID: EEA66103B3D71F53
9 changed files with 14 additions and 211 deletions

View file

@ -3,22 +3,8 @@
namespace Pterodactyl\Facades; namespace Pterodactyl\Facades;
use Illuminate\Support\Facades\Facade; use Illuminate\Support\Facades\Facade;
use Illuminate\Database\Eloquent\Model;
use Pterodactyl\Services\Activity\ActivityLogService; 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 class Activity extends Facade
{ {
protected static function getFacadeAccessor() protected static function getFacadeAccessor()

View file

@ -5,12 +5,6 @@ namespace Pterodactyl\Facades;
use Illuminate\Support\Facades\Facade; use Illuminate\Support\Facades\Facade;
use Pterodactyl\Services\Activity\AcitvityLogBatchService; 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 class LogBatch extends Facade
{ {
protected static function getFacadeAccessor() protected static function getFacadeAccessor()

View file

@ -5,13 +5,6 @@ namespace Pterodactyl\Facades;
use Illuminate\Support\Facades\Facade; use Illuminate\Support\Facades\Facade;
use Pterodactyl\Services\Activity\ActivityLogTargetableService; 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 class LogTarget extends Facade
{ {
protected static function getFacadeAccessor() protected static function getFacadeAccessor()

View file

@ -1,12 +1,12 @@
<?php <?php
namespace Pterodactyl\Http\Middleware; namespace Pterodactyl\Http\Middleware\Activity;
use Closure; use Closure;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Pterodactyl\Facades\LogTarget; use Pterodactyl\Facades\LogTarget;
class AccountActivitySubject class AccountSubject
{ {
/** /**
* Sets the actor and default subject for all requests passing through this * Sets the actor and default subject for all requests passing through this

View file

@ -1,13 +1,13 @@
<?php <?php
namespace Pterodactyl\Http\Middleware; namespace Pterodactyl\Http\Middleware\Activity;
use Closure; use Closure;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Pterodactyl\Models\Server; use Pterodactyl\Models\Server;
use Pterodactyl\Facades\LogTarget; use Pterodactyl\Facades\LogTarget;
class ServerActivitySubject class ServerSubject
{ {
/** /**
* Attempts to automatically scope all of the activity log events registered * Attempts to automatically scope all of the activity log events registered

View file

@ -13,7 +13,7 @@ use Illuminate\Database\Eloquent\Relations\BelongsTo;
* @property int $id * @property int $id
* @property int $user_id * @property int $user_id
* @property int $key_type * @property int $key_type
* @property string|null $identifier * @property string $identifier
* @property string $token * @property string $token
* @property array|null $allowed_ips * @property array|null $allowed_ips
* @property string|null $memo * @property string|null $memo

View file

@ -239,5 +239,10 @@ return [
'URL' => Illuminate\Support\Facades\URL::class, 'URL' => Illuminate\Support\Facades\URL::class,
'Validator' => Illuminate\Support\Facades\Validator::class, 'Validator' => Illuminate\Support\Facades\Validator::class,
'View' => Illuminate\Support\Facades\View::class, 'View' => Illuminate\Support\Facades\View::class,
// Custom Facades
'Activity' => Pterodactyl\Facades\Activity::class,
'LogBatch' => Pterodactyl\Facades\LogBatch::class,
'LogTarget' => Pterodactyl\Facades\LogTarget::class,
], ],
]; ];

View file

@ -1,175 +0,0 @@
<?php
return [
/*
|--------------------------------------------------------------------------
| Filename & Format
|--------------------------------------------------------------------------
|
| The default filename (without extension) and the format (php or json)
|
*/
'filename' => '_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',
],
];

View file

@ -2,8 +2,8 @@
use Illuminate\Support\Facades\Route; use Illuminate\Support\Facades\Route;
use Pterodactyl\Http\Controllers\Api\Client; use Pterodactyl\Http\Controllers\Api\Client;
use Pterodactyl\Http\Middleware\ServerActivitySubject; use Pterodactyl\Http\Middleware\Activity\ServerSubject;
use Pterodactyl\Http\Middleware\AccountActivitySubject; use Pterodactyl\Http\Middleware\Activity\AccountSubject;
use Pterodactyl\Http\Middleware\RequireTwoFactorAuthentication; use Pterodactyl\Http\Middleware\RequireTwoFactorAuthentication;
use Pterodactyl\Http\Middleware\Api\Client\Server\ResourceBelongsToServer; use Pterodactyl\Http\Middleware\Api\Client\Server\ResourceBelongsToServer;
use Pterodactyl\Http\Middleware\Api\Client\Server\AuthenticateServerAccess; 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('/', [Client\ClientController::class, 'index'])->name('api:client.index');
Route::get('/permissions', [Client\ClientController::class, 'permissions']); 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::prefix('/')->withoutMiddleware(RequireTwoFactorAuthentication::class)->group(function () {
Route::get('/', [Client\AccountController::class, 'index'])->name('api:client.account'); Route::get('/', [Client\AccountController::class, 'index'])->name('api:client.account');
Route::get('/two-factor', [Client\TwoFactorController::class, 'index']); Route::get('/two-factor', [Client\TwoFactorController::class, 'index']);
@ -54,7 +54,7 @@ Route::prefix('/account')->middleware(AccountActivitySubject::class)->group(func
Route::group([ Route::group([
'prefix' => '/servers/{server}', 'prefix' => '/servers/{server}',
'middleware' => [ 'middleware' => [
ServerActivitySubject::class, ServerSubject::class,
AuthenticateServerAccess::class, AuthenticateServerAccess::class,
ResourceBelongsToServer::class, ResourceBelongsToServer::class,
], ],