use ISecured/IAuthenticationRequired correctly in containers

This commit is contained in:
Bence Pőcze 2023-04-16 17:14:27 +02:00
parent 62e0261a0b
commit 54a4ee4d60
Signed by: bence
GPG Key ID: DC5BD6E95A333E6D
4 changed files with 20 additions and 21 deletions

View File

@ -2,7 +2,7 @@
use DateTime;
use Faker\Factory;
use SokoWeb\Interfaces\Authorization\ISecured;
use SokoWeb\Interfaces\Authentication\IAuthenticationRequired;
use SokoWeb\Interfaces\Request\IRequest;
use SokoWeb\Response\HtmlContent;
use SokoWeb\Response\JsonContent;
@ -21,7 +21,7 @@ use MapGuesser\Repository\PlaceRepository;
use MapGuesser\Repository\UserInChallengeRepository;
use SokoWeb\Response\Redirect;
class GameController implements ISecured
class GameController implements IAuthenticationRequired
{
const NUMBER_OF_ROUNDS = 5;
@ -53,9 +53,9 @@ class GameController implements ISecured
$this->userInChallengeRepository = new UserInChallengeRepository();
}
public function authorize(): bool
public function isAuthenticationRequired(): bool
{
return !empty($_ENV['ENABLE_GAME_FOR_GUESTS']) || $this->request->user() !== null;
return empty($_ENV['ENABLE_GAME_FOR_GUESTS']);
}
public function getGame(): IContent

View File

@ -1,7 +1,7 @@
<?php namespace MapGuesser\Controller;
use DateTime;
use SokoWeb\Interfaces\Authorization\ISecured;
use SokoWeb\Interfaces\Authentication\IAuthenticationRequired;
use SokoWeb\Interfaces\Request\IRequest;
use MapGuesser\Util\Geo\Position;
use SokoWeb\Response\JsonContent;
@ -15,17 +15,14 @@ use MapGuesser\PersistentData\Model\Place;
use MapGuesser\PersistentData\Model\PlaceInChallenge;
use MapGuesser\PersistentData\Model\User;
use MapGuesser\PersistentData\Model\UserPlayedPlace;
use MapGuesser\Repository\ChallengeRepository;
use MapGuesser\Repository\GuessRepository;
use MapGuesser\Repository\MapRepository;
use MapGuesser\Repository\MultiRoomRepository;
use MapGuesser\Repository\PlaceInChallengeRepository;
use MapGuesser\Repository\PlaceRepository;
use MapGuesser\Repository\UserInChallengeRepository;
use MapGuesser\Repository\UserPlayedPlaceRepository;
use MapGuesser\Repository\UserRepository;
class GameFlowController implements ISecured
class GameFlowController implements IAuthenticationRequired
{
const NUMBER_OF_ROUNDS = 5;
const MAX_SCORE = 1000;
@ -61,9 +58,9 @@ class GameFlowController implements ISecured
$this->guessRepository = new GuessRepository();
}
public function authorize(): bool
public function isAuthenticationRequired(): bool
{
return !empty($_ENV['ENABLE_GAME_FOR_GUESTS']) || $this->request->user() !== null;
return empty($_ENV['ENABLE_GAME_FOR_GUESTS']);
}
public function initialData(): IContent

View File

@ -2,6 +2,7 @@
use DateTime;
use SokoWeb\Interfaces\Authentication\IUser;
use SokoWeb\Interfaces\Authentication\IAuthenticationRequired;
use SokoWeb\Interfaces\Authorization\ISecured;
use SokoWeb\Interfaces\Request\IRequest;
use SokoWeb\Interfaces\Response\IContent;
@ -22,7 +23,7 @@ use SokoWeb\Response\JsonContent;
use MapGuesser\Util\Geo\Bounds;
use MapGuesser\Util\Panorama\Pov;
class MapAdminController implements ISecured
class MapAdminController implements IAuthenticationRequired, ISecured
{
private static string $unnamedMapName = '[unnamed map]';
@ -57,11 +58,14 @@ class MapAdminController implements ISecured
$this->userInChallengeRepository = new UserInChallengeRepository();
}
public function isAuthenticationRequired(): bool
{
return true;
}
public function authorize(): bool
{
$user = $this->request->user();
return $user !== null && $user->hasPermission(IUser::PERMISSION_ADMIN);
return $this->request->user()->hasPermission(IUser::PERMISSION_ADMIN);
}
public function getMapEditor(): IContent

View File

@ -2,7 +2,7 @@
use DateTime;
use SokoWeb\Http\Request;
use SokoWeb\Interfaces\Authorization\ISecured;
use SokoWeb\Interfaces\Authentication\IAuthenticationRequired;
use SokoWeb\Interfaces\Request\IRequest;
use SokoWeb\Interfaces\Response\IContent;
use SokoWeb\Interfaces\Response\IRedirect;
@ -19,7 +19,7 @@ use SokoWeb\Response\JsonContent;
use SokoWeb\Response\Redirect;
use SokoWeb\Util\JwtParser;
class UserController implements ISecured
class UserController implements IAuthenticationRequired
{
private IRequest $request;
@ -46,11 +46,9 @@ class UserController implements ISecured
$this->guessRepository = new GuessRepository();
}
public function authorize(): bool
public function isAuthenticationRequired(): bool
{
$user = $this->request->user();
return $user !== null;
return true;
}
public function getAccount(): IContent