Fix incorrect response in case when user's profile for provided UUID can't be found

This commit is contained in:
ErickSkrauch 2020-12-18 11:12:34 +01:00
parent 0c2832f95f
commit c64f386365
No known key found for this signature in database
GPG Key ID: 669339FCBB30EE0E
2 changed files with 8 additions and 18 deletions

View File

@ -110,11 +110,10 @@ class SessionController extends Controller {
/** /**
* @param string $uuid * @param string $uuid
* *
* @return array * @return array|null
* @throws ForbiddenOperationException
* @throws IllegalArgumentException * @throws IllegalArgumentException
*/ */
public function actionProfile(string $uuid): array { public function actionProfile(string $uuid): ?array {
try { try {
$uuid = Uuid::fromString($uuid)->toString(); $uuid = Uuid::fromString($uuid)->toString();
} catch (\InvalidArgumentException $e) { } catch (\InvalidArgumentException $e) {
@ -124,7 +123,8 @@ class SessionController extends Controller {
/** @var Account|null $account */ /** @var Account|null $account */
$account = Account::find()->excludeDeleted()->andWhere(['uuid' => $uuid])->one(); $account = Account::find()->excludeDeleted()->andWhere(['uuid' => $uuid])->one();
if ($account === null) { if ($account === null) {
throw new ForbiddenOperationException('Invalid uuid.'); Yii::$app->response->setStatusCode(204);
return null;
} }
return (new Textures($account))->getMinecraftResponse(); return (new Textures($account))->getMinecraftResponse();

View File

@ -49,24 +49,14 @@ class ProfileCest {
public function getProfileWithNonexistentUuid(FunctionalTester $I) { public function getProfileWithNonexistentUuid(FunctionalTester $I) {
$I->wantTo('get info about nonexistent uuid'); $I->wantTo('get info about nonexistent uuid');
$this->route->profile(v4()); $this->route->profile(v4());
$I->canSeeResponseCodeIs(401); $I->canSeeResponseCodeIs(204);
$I->canSeeResponseIsJson(); $I->canSeeResponseEquals('');
$I->seeResponseIsJson();
$I->canSeeResponseContainsJson([
'error' => 'ForbiddenOperationException',
'errorMessage' => 'Invalid uuid.',
]);
} }
public function getProfileOfAccountMarkedForDeletion(FunctionalTester $I) { public function getProfileOfAccountMarkedForDeletion(FunctionalTester $I) {
$this->route->profile('6383de63-8f85-4ed5-92b7-5401a1fa68cd'); $this->route->profile('6383de63-8f85-4ed5-92b7-5401a1fa68cd');
$I->canSeeResponseCodeIs(401); $I->canSeeResponseCodeIs(204);
$I->canSeeResponseIsJson(); $I->canSeeResponseEquals('');
$I->seeResponseIsJson();
$I->canSeeResponseContainsJson([
'error' => 'ForbiddenOperationException',
'errorMessage' => 'Invalid uuid.',
]);
} }
} }