29 lines
874 B
PHP
29 lines
874 B
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace Mummert\SurveyBundle\Service;
|
|
|
|
use Contao\FrontendUser;
|
|
use Mummert\SurveyBundle\Model\SurveyModel;
|
|
use Mummert\SurveyBundle\Repository\SurveyEditorRepository;
|
|
use Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException;
|
|
|
|
final class SurveyPermissionService
|
|
{
|
|
public function __construct(private readonly SurveyEditorRepository $surveyEditorRepository)
|
|
{
|
|
}
|
|
|
|
public function canEditSurvey(SurveyModel $survey, FrontendUser $member): bool
|
|
{
|
|
return $this->surveyEditorRepository->isEditor((int) $survey->id, (int) $member->id);
|
|
}
|
|
|
|
public function assertEditorAccess(SurveyModel $survey, FrontendUser $member): void
|
|
{
|
|
if (!$this->canEditSurvey($survey, $member)) {
|
|
throw new AccessDeniedHttpException('Sie duerfen diese Umfrage nicht bearbeiten.');
|
|
}
|
|
}
|
|
} |