diff --git a/app/Contracts/Repository/ApiKeyRepositoryInterface.php b/app/Contracts/Repository/ApiKeyRepositoryInterface.php index c9fcb1923..18a53de24 100644 --- a/app/Contracts/Repository/ApiKeyRepositoryInterface.php +++ b/app/Contracts/Repository/ApiKeyRepositoryInterface.php @@ -9,17 +9,17 @@ namespace Pterodactyl\Contracts\Repository; -use Pterodactyl\Models\APIKey; +use Pterodactyl\Models\ApiKey; interface ApiKeyRepositoryInterface extends RepositoryInterface { /** * Load permissions for a key onto the model. * - * @param \Pterodactyl\Models\APIKey $model + * @param \Pterodactyl\Models\ApiKey $model * @param bool $refresh * @deprecated - * @return \Pterodactyl\Models\APIKey + * @return \Pterodactyl\Models\ApiKey */ - public function loadPermissions(APIKey $model, bool $refresh = false): APIKey; + public function loadPermissions(ApiKey $model, bool $refresh = false): ApiKey; } diff --git a/app/Http/Middleware/Api/Admin/AuthenticateKey.php b/app/Http/Middleware/Api/Admin/AuthenticateKey.php index 22b99e69d..7b9fb2f1d 100644 --- a/app/Http/Middleware/Api/Admin/AuthenticateKey.php +++ b/app/Http/Middleware/Api/Admin/AuthenticateKey.php @@ -4,7 +4,7 @@ namespace Pterodactyl\Http\Middleware\Api\Admin; use Closure; use Illuminate\Http\Request; -use Pterodactyl\Models\APIKey; +use Pterodactyl\Models\ApiKey; use Illuminate\Auth\AuthManager; use Illuminate\Contracts\Encryption\Encrypter; use Symfony\Component\HttpKernel\Exception\HttpException; @@ -61,8 +61,8 @@ class AuthenticateKey } $raw = $request->bearerToken(); - $identifier = substr($raw, 0, APIKey::IDENTIFIER_LENGTH); - $token = substr($raw, APIKey::IDENTIFIER_LENGTH); + $identifier = substr($raw, 0, ApiKey::IDENTIFIER_LENGTH); + $token = substr($raw, ApiKey::IDENTIFIER_LENGTH); try { $model = $this->repository->findFirstWhere([['identifier', '=', $identifier]]); diff --git a/app/Http/Requests/API/Admin/ApiAdminRequest.php b/app/Http/Requests/API/Admin/ApiAdminRequest.php index f9f9a063a..8eaa51f5b 100644 --- a/app/Http/Requests/API/Admin/ApiAdminRequest.php +++ b/app/Http/Requests/API/Admin/ApiAdminRequest.php @@ -2,7 +2,7 @@ namespace Pterodactyl\Http\Requests\API\Admin; -use Pterodactyl\Models\APIKey; +use Pterodactyl\Models\ApiKey; use Illuminate\Foundation\Http\FormRequest; use Pterodactyl\Exceptions\PterodactylException; use Pterodactyl\Services\Acl\Api\AdminAcl as Acl; @@ -66,9 +66,9 @@ abstract class ApiAdminRequest extends FormRequest /** * Return the API key being used for the request. * - * @return \Pterodactyl\Models\APIKey + * @return \Pterodactyl\Models\ApiKey */ - public function key(): APIKey + public function key(): ApiKey { return $this->attributes->get('api_key'); } diff --git a/app/Models/APIKey.php b/app/Models/ApiKey.php similarity index 98% rename from app/Models/APIKey.php rename to app/Models/ApiKey.php index 8edab2bdd..3aa7edcea 100644 --- a/app/Models/APIKey.php +++ b/app/Models/ApiKey.php @@ -10,7 +10,7 @@ use Illuminate\Contracts\Encryption\Encrypter; use Sofa\Eloquence\Contracts\CleansAttributes; use Sofa\Eloquence\Contracts\Validable as ValidableContract; -class APIKey extends Model implements CleansAttributes, ValidableContract +class ApiKey extends Model implements CleansAttributes, ValidableContract { use Eloquence, Validable; diff --git a/app/Providers/MacroServiceProvider.php b/app/Providers/MacroServiceProvider.php index 014e8f7af..ddfbf7aa8 100644 --- a/app/Providers/MacroServiceProvider.php +++ b/app/Providers/MacroServiceProvider.php @@ -13,7 +13,7 @@ use File; use Cache; use Carbon; use Request; -use Pterodactyl\Models\APIKey; +use Pterodactyl\Models\ApiKey; use Illuminate\Support\ServiceProvider; use Pterodactyl\Services\ApiKeyService; @@ -51,7 +51,7 @@ class MacroServiceProvider extends ServiceProvider 'ApiKeyMacro', 'ApiKeyMacro:Key:' . $parts[0], ])->remember('ApiKeyMacro.' . $parts[0], Carbon::now()->addMinutes(15), function () use ($parts) { - return APIKey::where('public', $parts[0])->first(); + return ApiKey::where('public', $parts[0])->first(); }); } diff --git a/app/Repositories/Eloquent/ApiKeyRepository.php b/app/Repositories/Eloquent/ApiKeyRepository.php index f62499b2f..c7b9bd0a4 100644 --- a/app/Repositories/Eloquent/ApiKeyRepository.php +++ b/app/Repositories/Eloquent/ApiKeyRepository.php @@ -2,7 +2,7 @@ namespace Pterodactyl\Repositories\Eloquent; -use Pterodactyl\Models\APIKey; +use Pterodactyl\Models\ApiKey; use Pterodactyl\Contracts\Repository\ApiKeyRepositoryInterface; class ApiKeyRepository extends EloquentRepository implements ApiKeyRepositoryInterface @@ -14,18 +14,18 @@ class ApiKeyRepository extends EloquentRepository implements ApiKeyRepositoryInt */ public function model() { - return APIKey::class; + return ApiKey::class; } /** * Load permissions for a key onto the model. * - * @param \Pterodactyl\Models\APIKey $model + * @param \Pterodactyl\Models\ApiKey $model * @param bool $refresh * @deprecated - * @return \Pterodactyl\Models\APIKey + * @return \Pterodactyl\Models\ApiKey */ - public function loadPermissions(APIKey $model, bool $refresh = false): APIKey + public function loadPermissions(ApiKey $model, bool $refresh = false): ApiKey { if (! $model->relationLoaded('permissions') || $refresh) { $model->load('permissions'); diff --git a/app/Services/Acl/Api/AdminAcl.php b/app/Services/Acl/Api/AdminAcl.php index 3416c1a44..2a3404457 100644 --- a/app/Services/Acl/Api/AdminAcl.php +++ b/app/Services/Acl/Api/AdminAcl.php @@ -2,7 +2,7 @@ namespace Pterodactyl\Services\Acl\Api; -use Pterodactyl\Models\APIKey; +use Pterodactyl\Models\ApiKey; class AdminAcl { @@ -54,12 +54,12 @@ class AdminAcl * Determine if an API Key model has permission to access a given resource * at a specific action level. * - * @param \Pterodactyl\Models\APIKey $key + * @param \Pterodactyl\Models\ApiKey $key * @param string $resource * @param int $action * @return bool */ - public static function check(APIKey $key, string $resource, int $action = self::READ) + public static function check(ApiKey $key, string $resource, int $action = self::READ) { return self::can(data_get($key, self::COLUMN_IDENTIFER . $resource, self::NONE), $action); } diff --git a/app/Services/Api/KeyCreationService.php b/app/Services/Api/KeyCreationService.php index 5e72546b1..d8f308336 100644 --- a/app/Services/Api/KeyCreationService.php +++ b/app/Services/Api/KeyCreationService.php @@ -2,7 +2,7 @@ namespace Pterodactyl\Services\Api; -use Pterodactyl\Models\APIKey; +use Pterodactyl\Models\ApiKey; use Illuminate\Contracts\Encryption\Encrypter; use Pterodactyl\Contracts\Repository\ApiKeyRepositoryInterface; @@ -36,15 +36,15 @@ class KeyCreationService * stored in the database. * * @param array $data - * @return \Pterodactyl\Models\APIKey + * @return \Pterodactyl\Models\ApiKey * * @throws \Pterodactyl\Exceptions\Model\DataValidationException */ - public function handle(array $data): APIKey + public function handle(array $data): ApiKey { $data = array_merge($data, [ - 'identifier' => str_random(APIKey::IDENTIFIER_LENGTH), - 'token' => $this->encrypter->encrypt(str_random(APIKey::KEY_LENGTH)), + 'identifier' => str_random(ApiKey::IDENTIFIER_LENGTH), + 'token' => $this->encrypter->encrypt(str_random(ApiKey::KEY_LENGTH)), ]); $instance = $this->repository->create($data, true, true); diff --git a/app/Transformers/Api/Admin/BaseTransformer.php b/app/Transformers/Api/Admin/BaseTransformer.php index 7673d034c..5f6c3742b 100644 --- a/app/Transformers/Api/Admin/BaseTransformer.php +++ b/app/Transformers/Api/Admin/BaseTransformer.php @@ -3,7 +3,7 @@ namespace Pterodactyl\Transformers\Api\Admin; use Cake\Chronos\Chronos; -use Pterodactyl\Models\APIKey; +use Pterodactyl\Models\ApiKey; use Illuminate\Container\Container; use League\Fractal\TransformerAbstract; use Pterodactyl\Services\Acl\Api\AdminAcl; @@ -13,17 +13,17 @@ abstract class BaseTransformer extends TransformerAbstract const RESPONSE_TIMEZONE = 'UTC'; /** - * @var \Pterodactyl\Models\APIKey + * @var \Pterodactyl\Models\ApiKey */ private $key; /** * Set the HTTP request class being used for this request. * - * @param \Pterodactyl\Models\APIKey $key + * @param \Pterodactyl\Models\ApiKey $key * @return $this */ - public function setKey(APIKey $key) + public function setKey(ApiKey $key) { $this->key = $key; @@ -33,9 +33,9 @@ abstract class BaseTransformer extends TransformerAbstract /** * Return the request instance being used for this transformer. * - * @return \Pterodactyl\Models\APIKey + * @return \Pterodactyl\Models\ApiKey */ - public function getKey(): APIKey + public function getKey(): ApiKey { return $this->key; } diff --git a/database/factories/ModelFactory.php b/database/factories/ModelFactory.php index 810f81bdc..bef8ee396 100644 --- a/database/factories/ModelFactory.php +++ b/database/factories/ModelFactory.php @@ -223,11 +223,11 @@ $factory->define(Pterodactyl\Models\DaemonKey::class, function (Faker $faker) { ]; }); -$factory->define(Pterodactyl\Models\APIKey::class, function (Faker $faker) { +$factory->define(Pterodactyl\Models\ApiKey::class, function (Faker $faker) { return [ 'id' => $faker->unique()->randomNumber(), 'user_id' => $faker->randomNumber(), - 'identifier' => str_random(Pterodactyl\Models\APIKey::IDENTIFIER_LENGTH), + 'identifier' => str_random(Pterodactyl\Models\ApiKey::IDENTIFIER_LENGTH), 'token' => 'encrypted_string', 'memo' => 'Test Function Key', 'created_at' => \Carbon\Carbon::now()->toDateTimeString(), diff --git a/tests/Unit/Http/Controllers/Base/APIControllerTest.php b/tests/Unit/Http/Controllers/Base/APIControllerTest.php index e356c3910..b2ccf9bfc 100644 --- a/tests/Unit/Http/Controllers/Base/APIControllerTest.php +++ b/tests/Unit/Http/Controllers/Base/APIControllerTest.php @@ -4,7 +4,7 @@ namespace Tests\Unit\Http\Controllers\Base; use Mockery as m; use Pterodactyl\Models\User; -use Pterodactyl\Models\APIKey; +use Pterodactyl\Models\ApiKey; use Prologue\Alerts\AlertsMessageBag; use Pterodactyl\Services\Api\KeyCreationService; use Tests\Unit\Http\Controllers\ControllerTestCase; @@ -88,7 +88,7 @@ class APIControllerTest extends ControllerTestCase { $this->setRequestMockClass(ApiKeyFormRequest::class); $model = $this->generateRequestUserModel(['root_admin' => $admin]); - $keyModel = factory(APIKey::class)->make(); + $keyModel = factory(ApiKey::class)->make(); if ($admin) { $this->request->shouldReceive('input')->with('admin_permissions', [])->once()->andReturn(['admin.permission']); diff --git a/tests/Unit/Http/Middleware/Api/Admin/AuthenticateIPAccessTest.php b/tests/Unit/Http/Middleware/Api/Admin/AuthenticateIPAccessTest.php index 2917cfc54..ee5ac6f20 100644 --- a/tests/Unit/Http/Middleware/Api/Admin/AuthenticateIPAccessTest.php +++ b/tests/Unit/Http/Middleware/Api/Admin/AuthenticateIPAccessTest.php @@ -2,7 +2,7 @@ namespace Tests\Unit\Http\Middleware\Api\Admin; -use Pterodactyl\Models\APIKey; +use Pterodactyl\Models\ApiKey; use Tests\Unit\Http\Middleware\MiddlewareTestCase; use Pterodactyl\Http\Middleware\Api\Admin\AuthenticateIPAccess; @@ -13,7 +13,7 @@ class AuthenticateIPAccessTest extends MiddlewareTestCase */ public function testWithNoIPRestrictions() { - $model = factory(APIKey::class)->make(['allowed_ips' => []]); + $model = factory(ApiKey::class)->make(['allowed_ips' => []]); $this->setRequestAttribute('api_key', $model); $this->getMiddleware()->handle($this->request, $this->getClosureAssertions()); @@ -25,7 +25,7 @@ class AuthenticateIPAccessTest extends MiddlewareTestCase */ public function testWithValidIP() { - $model = factory(APIKey::class)->make(['allowed_ips' => ['127.0.0.1']]); + $model = factory(ApiKey::class)->make(['allowed_ips' => ['127.0.0.1']]); $this->setRequestAttribute('api_key', $model); $this->request->shouldReceive('ip')->withNoArgs()->once()->andReturn('127.0.0.1'); @@ -38,7 +38,7 @@ class AuthenticateIPAccessTest extends MiddlewareTestCase */ public function testValidIPAganistCIDRRange() { - $model = factory(APIKey::class)->make(['allowed_ips' => ['192.168.1.1/28']]); + $model = factory(ApiKey::class)->make(['allowed_ips' => ['192.168.1.1/28']]); $this->setRequestAttribute('api_key', $model); $this->request->shouldReceive('ip')->withNoArgs()->once()->andReturn('192.168.1.15'); @@ -54,7 +54,7 @@ class AuthenticateIPAccessTest extends MiddlewareTestCase */ public function testWithInvalidIP() { - $model = factory(APIKey::class)->make(['allowed_ips' => ['127.0.0.1']]); + $model = factory(ApiKey::class)->make(['allowed_ips' => ['127.0.0.1']]); $this->setRequestAttribute('api_key', $model); $this->request->shouldReceive('ip')->withNoArgs()->once()->andReturn('127.0.0.2'); diff --git a/tests/Unit/Http/Middleware/Api/Admin/AuthenticateKeyTest.php b/tests/Unit/Http/Middleware/Api/Admin/AuthenticateKeyTest.php index f28878ce8..be2237588 100644 --- a/tests/Unit/Http/Middleware/Api/Admin/AuthenticateKeyTest.php +++ b/tests/Unit/Http/Middleware/Api/Admin/AuthenticateKeyTest.php @@ -3,7 +3,7 @@ namespace Tests\Unit\Http\Middleware\Api; use Mockery as m; -use Pterodactyl\Models\APIKey; +use Pterodactyl\Models\ApiKey; use Illuminate\Auth\AuthManager; use Illuminate\Contracts\Encryption\Encrypter; use Tests\Unit\Http\Middleware\MiddlewareTestCase; @@ -74,7 +74,7 @@ class AuthenticateKeyTest extends MiddlewareTestCase */ public function testValidToken() { - $model = factory(APIKey::class)->make(); + $model = factory(ApiKey::class)->make(); $this->request->shouldReceive('bearerToken')->withNoArgs()->twice()->andReturn($model->identifier . 'decrypted'); $this->repository->shouldReceive('findFirstWhere')->with([['identifier', '=', $model->identifier]])->once()->andReturn($model); @@ -93,7 +93,7 @@ class AuthenticateKeyTest extends MiddlewareTestCase */ public function testInvalidTokenForIdentifier() { - $model = factory(APIKey::class)->make(); + $model = factory(ApiKey::class)->make(); $this->request->shouldReceive('bearerToken')->withNoArgs()->twice()->andReturn($model->identifier . 'asdf'); $this->repository->shouldReceive('findFirstWhere')->with([['identifier', '=', $model->identifier]])->once()->andReturn($model); diff --git a/tests/Unit/Services/Api/KeyCreationServiceTest.php b/tests/Unit/Services/Api/KeyCreationServiceTest.php index 1f7b52a99..8daed6cda 100644 --- a/tests/Unit/Services/Api/KeyCreationServiceTest.php +++ b/tests/Unit/Services/Api/KeyCreationServiceTest.php @@ -5,7 +5,7 @@ namespace Tests\Unit\Services\Api; use Mockery as m; use Tests\TestCase; use phpmock\phpunit\PHPMock; -use Pterodactyl\Models\APIKey; +use Pterodactyl\Models\ApiKey; use Illuminate\Contracts\Encryption\Encrypter; use Pterodactyl\Services\Api\KeyCreationService; use Pterodactyl\Contracts\Repository\ApiKeyRepositoryInterface; @@ -40,48 +40,48 @@ class KeyCreationServiceTest extends TestCase */ public function testKeyIsCreated() { - $model = factory(APIKey::class)->make(); + $model = factory(ApiKey::class)->make(); $this->getFunctionMock('\\Pterodactyl\\Services\\Api', 'str_random') ->expects($this->exactly(2))->willReturnCallback(function ($length) { return 'str_' . $length; }); - $this->encrypter->shouldReceive('encrypt')->with('str_' . APIKey::KEY_LENGTH)->once()->andReturn($model->token); + $this->encrypter->shouldReceive('encrypt')->with('str_' . ApiKey::KEY_LENGTH)->once()->andReturn($model->token); $this->repository->shouldReceive('create')->with([ 'test-data' => 'test', - 'identifier' => 'str_' . APIKey::IDENTIFIER_LENGTH, + 'identifier' => 'str_' . ApiKey::IDENTIFIER_LENGTH, 'token' => $model->token, ], true, true)->once()->andReturn($model); $response = $this->getService()->handle(['test-data' => 'test']); $this->assertNotEmpty($response); - $this->assertInstanceOf(APIKey::class, $response); + $this->assertInstanceOf(ApiKey::class, $response); $this->assertSame($model, $response); } public function testIdentifierAndTokenAreOnlySetByFunction() { - $model = factory(APIKey::class)->make(); + $model = factory(ApiKey::class)->make(); $this->getFunctionMock('\\Pterodactyl\\Services\\Api', 'str_random') ->expects($this->exactly(2))->willReturnCallback(function ($length) { return 'str_' . $length; }); - $this->encrypter->shouldReceive('encrypt')->with('str_' . APIKey::KEY_LENGTH)->once()->andReturn($model->token); + $this->encrypter->shouldReceive('encrypt')->with('str_' . ApiKey::KEY_LENGTH)->once()->andReturn($model->token); $this->repository->shouldReceive('create')->with([ - 'identifier' => 'str_' . APIKey::IDENTIFIER_LENGTH, + 'identifier' => 'str_' . ApiKey::IDENTIFIER_LENGTH, 'token' => $model->token, ], true, true)->once()->andReturn($model); $response = $this->getService()->handle(['identifier' => 'customIdentifier', 'token' => 'customToken']); $this->assertNotEmpty($response); - $this->assertInstanceOf(APIKey::class, $response); + $this->assertInstanceOf(ApiKey::class, $response); $this->assertSame($model, $response); }