Code cleanup for facades
This commit is contained in:
parent
6ffe5730da
commit
92c1c162af
9 changed files with 14 additions and 211 deletions
|
@ -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()
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
<?php
|
||||
|
||||
namespace Pterodactyl\Http\Middleware;
|
||||
namespace Pterodactyl\Http\Middleware\Activity;
|
||||
|
||||
use Closure;
|
||||
use Illuminate\Http\Request;
|
||||
use Pterodactyl\Facades\LogTarget;
|
||||
|
||||
class AccountActivitySubject
|
||||
class AccountSubject
|
||||
{
|
||||
/**
|
||||
* Sets the actor and default subject for all requests passing through this
|
|
@ -1,13 +1,13 @@
|
|||
<?php
|
||||
|
||||
namespace Pterodactyl\Http\Middleware;
|
||||
namespace Pterodactyl\Http\Middleware\Activity;
|
||||
|
||||
use Closure;
|
||||
use Illuminate\Http\Request;
|
||||
use Pterodactyl\Models\Server;
|
||||
use Pterodactyl\Facades\LogTarget;
|
||||
|
||||
class ServerActivitySubject
|
||||
class ServerSubject
|
||||
{
|
||||
/**
|
||||
* Attempts to automatically scope all of the activity log events registered
|
|
@ -13,7 +13,7 @@ use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
|||
* @property int $id
|
||||
* @property int $user_id
|
||||
* @property int $key_type
|
||||
* @property string|null $identifier
|
||||
* @property string $identifier
|
||||
* @property string $token
|
||||
* @property array|null $allowed_ips
|
||||
* @property string|null $memo
|
||||
|
|
|
@ -239,5 +239,10 @@ return [
|
|||
'URL' => 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,
|
||||
],
|
||||
];
|
||||
|
|
|
@ -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',
|
||||
],
|
||||
];
|
|
@ -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,
|
||||
],
|
||||
|
|
Loading…
Reference in a new issue