Use a post request to delete SSH keys, some hashes use slashes which cause 404 errors; closes #4100
This commit is contained in:
parent
5143faa4b1
commit
03a497fb8a
5 changed files with 24 additions and 17 deletions
|
@ -14,7 +14,6 @@ use Pterodactyl\Models\Location;
|
|||
use Pterodactyl\Models\Schedule;
|
||||
use Illuminate\Support\Collection;
|
||||
use Pterodactyl\Models\Allocation;
|
||||
use Pterodactyl\Models\UserSSHKey;
|
||||
use Pterodactyl\Models\DatabaseHost;
|
||||
use Pterodactyl\Tests\Integration\TestResponse;
|
||||
use Pterodactyl\Tests\Integration\IntegrationTestCase;
|
||||
|
@ -60,7 +59,6 @@ abstract class ClientApiIntegrationTestCase extends IntegrationTestCase
|
|||
*/
|
||||
protected function link($model, $append = null): string
|
||||
{
|
||||
$link = '';
|
||||
switch (get_class($model)) {
|
||||
case Server::class:
|
||||
$link = "/api/client/servers/{$model->uuid}";
|
||||
|
@ -77,9 +75,6 @@ abstract class ClientApiIntegrationTestCase extends IntegrationTestCase
|
|||
case Backup::class:
|
||||
$link = "/api/client/servers/{$model->server->uuid}/backups/{$model->uuid}";
|
||||
break;
|
||||
case UserSSHKey::class:
|
||||
$link = "/api/client/account/ssh-keys/$model->fingerprint";
|
||||
break;
|
||||
default:
|
||||
throw new InvalidArgumentException(sprintf('Cannot create link for Model of type %s', class_basename($model)));
|
||||
}
|
||||
|
|
|
@ -40,14 +40,20 @@ class SSHKeyControllerTest extends ClientApiIntegrationTestCase
|
|||
$key = UserSSHKey::factory()->for($user)->create();
|
||||
$key2 = UserSSHKey::factory()->for($user2)->create();
|
||||
|
||||
$endpoint = '/api/client/account/ssh-keys/remove';
|
||||
|
||||
$this->actingAs($user);
|
||||
$this->deleteJson($this->link($key))->assertNoContent();
|
||||
$this->postJson($endpoint)
|
||||
->assertUnprocessable()
|
||||
->assertJsonPath('errors.0.meta', ['source_field' => 'fingerprint', 'rule' => 'required']);
|
||||
|
||||
$this->postJson($endpoint, ['fingerprint' => $key->fingerprint])->assertNoContent();
|
||||
|
||||
$this->assertSoftDeleted($key);
|
||||
$this->assertNotSoftDeleted($key2);
|
||||
|
||||
$this->deleteJson($this->link($key))->assertNotFound();
|
||||
$this->deleteJson($this->link($key2))->assertNotFound();
|
||||
$this->postJson($endpoint, ['fingerprint' => $key->fingerprint])->assertNoContent();
|
||||
$this->postJson($endpoint, ['fingerprint' => $key2->fingerprint])->assertNoContent();
|
||||
|
||||
$this->assertNotSoftDeleted($key2);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue