Skip to content

Commit b4772ca

Browse files
committed
refactor: simplified session usage in controllers
1 parent 4c55aa2 commit b4772ca

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

52 files changed

+136
-256
lines changed

phpmyfaq/src/phpMyFAQ/Controller/AbstractController.php

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
use Symfony\Component\HttpFoundation\JsonResponse;
3636
use Symfony\Component\HttpFoundation\Request;
3737
use Symfony\Component\HttpFoundation\Response;
38+
use Symfony\Component\HttpFoundation\Session\SessionInterface;
3839
use Symfony\Component\HttpKernel\Exception\UnauthorizedHttpException;
3940
use Twig\Error\LoaderError;
4041
use Twig\Extension\ExtensionInterface;
@@ -57,6 +58,8 @@ abstract class AbstractController
5758

5859
protected ?CurrentUser $currentUser = null;
5960

61+
protected ?SessionInterface $session = null;
62+
6063
/** @var ExtensionInterface[] */
6164
private array $twigExtensions = [];
6265

@@ -66,14 +69,15 @@ abstract class AbstractController
6669
/**
6770
* Check if the FAQ should be secured.
6871
*
69-
* @throws Exception
7072
* @throws \Exception
7173
*/
7274
public function __construct()
7375
{
7476
$this->container = $this->createContainer();
7577
$this->configuration = $this->container->get(id: 'phpmyfaq.configuration');
7678
$this->currentUser = $this->container->get(id: 'phpmyfaq.user.current_user');
79+
$this->session = $this->container->get(id: 'session');
80+
7781
TwigWrapper::setTemplateSetName($this->configuration->getTemplateSet());
7882
$this->isSecured();
7983
}

phpmyfaq/src/phpMyFAQ/Controller/Administration/AbstractAdministrationController.php

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,6 @@ protected function getHeader(Request $request): array
4545
$adminHelper = $this->container->get(id: 'phpmyfaq.admin.helper');
4646
$adminHelper->setUser($this->currentUser);
4747

48-
$session = $this->container->get(id: 'session');
49-
5048
$secLevelEntries = $this->getSecondLevelEntries($adminHelper);
5149
$pageFlags = $this->getPageFlags($request);
5250
$gravatarImage = $this->getGravatarImage();
@@ -71,7 +69,7 @@ protected function getHeader(Request $request): array
7169
'hasGravatarSupport' => $this->configuration->get(item: 'main.enableGravatarSupport'),
7270
'gravatarImage' => $gravatarImage,
7371
'msgChangePassword' => Translation::get(key: 'ad_menu_passwd'),
74-
'csrfTokenLogout' => Token::getInstance($session)->getTokenString('admin-logout'),
72+
'csrfTokenLogout' => Token::getInstance($this->session)->getTokenString('admin-logout'),
7573
'msgLogout' => Translation::get(key: 'admin_mainmenu_logout'),
7674
'secondLevelEntries' => $secLevelEntries,
7775
'menuUsers' => Translation::get(key: 'admin_mainmenu_users'),

phpmyfaq/src/phpMyFAQ/Controller/Administration/AdminLogController.php

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,6 @@ public function index(Request $request): Response
4646
$this->userHasPermission(PermissionType::STATISTICS_ADMINLOG);
4747

4848
$adminLog = $this->container->get(id: 'phpmyfaq.admin.admin-log');
49-
$session = $this->container->get(id: 'session');
5049

5150
$itemsPerPage = 15;
5251
$page = Filter::filterVar($request->attributes->get('page'), FILTER_VALIDATE_INT, 1);
@@ -72,7 +71,7 @@ public function index(Request $request): Response
7271
...$this->getFooter(),
7372
'headerAdminLog' => Translation::get(key: 'ad_menu_adminlog'),
7473
'buttonDeleteAdminLog' => Translation::get(key: 'ad_adminlog_del_older_30d'),
75-
'csrfDeleteAdminLogToken' => Token::getInstance($session)->getTokenString('delete-adminlog'),
74+
'csrfDeleteAdminLogToken' => Token::getInstance($this->session)->getTokenString('delete-adminlog'),
7675
'currentLocale' => $this->configuration->getLanguage()->getLanguage(),
7776
'pagination' => $pagination->render(),
7877
'msgId' => Translation::get(key: 'ad_categ_id'),

phpmyfaq/src/phpMyFAQ/Controller/Administration/Api/AttachmentController.php

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -45,10 +45,7 @@ public function delete(Request $request): JsonResponse
4545

4646
$deleteData = json_decode($request->getContent());
4747
try {
48-
if (!Token::getInstance($this->container->get(id: 'session'))->verifyToken(
49-
'delete-attachment',
50-
$deleteData->csrf,
51-
)) {
48+
if (!Token::getInstance($this->session)->verifyToken('delete-attachment', $deleteData->csrf)) {
5249
return $this->json(['error' => Translation::get(key: 'msgNoPermission')], Response::HTTP_UNAUTHORIZED);
5350
}
5451

@@ -78,10 +75,7 @@ public function refresh(Request $request): JsonResponse
7875

7976
$dataToCheck = json_decode($request->getContent());
8077
try {
81-
if (!Token::getInstance($this->container->get(id: 'session'))->verifyToken(
82-
'refresh-attachment',
83-
$dataToCheck->csrf,
84-
)) {
78+
if (!Token::getInstance($this->session)->verifyToken('refresh-attachment', $dataToCheck->csrf)) {
8579
return $this->json(['error' => Translation::get(key: 'msgNoPermission')], Response::HTTP_UNAUTHORIZED);
8680
}
8781

phpmyfaq/src/phpMyFAQ/Controller/Administration/Api/CategoryController.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ public function delete(Request $request): JsonResponse
4747

4848
$data = json_decode($request->getContent());
4949

50-
if (!Token::getInstance($this->container->get(id: 'session'))->verifyToken('category', $data->csrfToken)) {
50+
if (!Token::getInstance($this->session)->verifyToken('category', $data->csrfToken)) {
5151
return $this->json(['error' => Translation::get(key: 'msgNoPermission')], Response::HTTP_UNAUTHORIZED);
5252
}
5353

@@ -140,7 +140,7 @@ public function updateOrder(Request $request): JsonResponse
140140

141141
$data = json_decode($request->getContent());
142142

143-
if (!Token::getInstance($this->container->get(id: 'session'))->verifyToken('category', $data->csrfToken)) {
143+
if (!Token::getInstance($this->session)->verifyToken('category', $data->csrfToken)) {
144144
return $this->json(['error' => Translation::get(key: 'msgNoPermission')], Response::HTTP_UNAUTHORIZED);
145145
}
146146

phpmyfaq/src/phpMyFAQ/Controller/Administration/Api/CommentController.php

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40,10 +40,7 @@ public function delete(Request $request): JsonResponse
4040

4141
$data = json_decode($request->getContent());
4242

43-
if (!Token::getInstance($this->container->get(id: 'session'))->verifyToken(
44-
'delete-comment',
45-
$data->data->{'pmf-csrf-token'},
46-
)) {
43+
if (!Token::getInstance($this->session)->verifyToken('delete-comment', $data->data->{'pmf-csrf-token'})) {
4744
return $this->json(['error' => Translation::get(key: 'msgNoPermission')], Response::HTTP_UNAUTHORIZED);
4845
}
4946

phpmyfaq/src/phpMyFAQ/Controller/Administration/Api/ConfigurationController.php

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ public function sendTestMail(Request $request): JsonResponse
4646

4747
$data = json_decode($request->getContent());
4848

49-
if (!Token::getInstance($this->container->get(id: 'session'))->verifyToken('configuration', $data->csrf)) {
49+
if (!Token::getInstance($this->session)->verifyToken('configuration', $data->csrf)) {
5050
return $this->json(['error' => Translation::get(key: 'msgNoPermission')], Response::HTTP_UNAUTHORIZED);
5151
}
5252

@@ -76,11 +76,9 @@ public function activateMaintenanceMode(Request $request): JsonResponse
7676
{
7777
$this->userHasPermission(PermissionType::CONFIGURATION_EDIT);
7878

79-
$session = $this->container->get(id: 'session');
80-
8179
$data = json_decode($request->getContent());
8280

83-
if (!Token::getInstance($session)->verifyToken('activate-maintenance-mode', $data->csrf)) {
81+
if (!Token::getInstance($this->session)->verifyToken('activate-maintenance-mode', $data->csrf)) {
8482
return $this->json(['error' => Translation::get(key: 'msgNoPermission')], Response::HTTP_UNAUTHORIZED);
8583
}
8684

phpmyfaq/src/phpMyFAQ/Controller/Administration/Api/ConfigurationTabController.php

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -94,10 +94,7 @@ public function save(Request $request): JsonResponse
9494

9595
$oldConfigurationData = $this->configuration->getAll();
9696

97-
if (!Token::getInstance($this->container->get(id: 'session'))->verifyToken(
98-
page: 'configuration',
99-
requestToken: $csrfToken,
100-
)) {
97+
if (!Token::getInstance($this->session)->verifyToken(page: 'configuration', requestToken: $csrfToken)) {
10198
return $this->json(['error' => Translation::get(key: 'msgNoPermission')], Response::HTTP_UNAUTHORIZED);
10299
}
103100

phpmyfaq/src/phpMyFAQ/Controller/Administration/Api/ExportController.php

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -80,10 +80,7 @@ public function exportReport(Request $request): Response
8080
$this->userHasPermission(PermissionType::REPORTS);
8181

8282
$data = json_decode($request->getContent())->data;
83-
if (!Token::getInstance($this->container->get(id: 'session'))->verifyToken(
84-
'create-report',
85-
$data->{'pmf-csrf-token'},
86-
)) {
83+
if (!Token::getInstance($this->session)->verifyToken('create-report', $data->{'pmf-csrf-token'})) {
8784
return $this->json(['error' => Translation::get(key: 'msgNoPermission')], Response::HTTP_UNAUTHORIZED);
8885
}
8986

phpmyfaq/src/phpMyFAQ/Controller/Administration/Api/FaqController.php

Lines changed: 8 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ public function create(Request $request): JsonResponse
8282

8383
$data = json_decode($request->getContent())->data;
8484

85-
if (!Token::getInstance($this->container->get(id: 'session'))->verifyToken(
85+
if (!Token::getInstance($this->session)->verifyToken(
8686
page: 'pmf-csrf-token',
8787
requestToken: $data->{'pmf-csrf-token'},
8888
)) {
@@ -289,7 +289,7 @@ public function update(Request $request): JsonResponse
289289

290290
$data = json_decode($request->getContent())->data;
291291

292-
if (!Token::getInstance($this->container->get(id: 'session'))->verifyToken(
292+
if (!Token::getInstance($this->session)->verifyToken(
293293
page: 'pmf-csrf-token',
294294
requestToken: $data->{'pmf-csrf-token'},
295295
)) {
@@ -538,10 +538,7 @@ public function activate(Request $request): JsonResponse
538538
$faqLanguage = Filter::filterVar($data->faqLanguage, FILTER_SANITIZE_SPECIAL_CHARS);
539539
$checked = Filter::filterVar($data->checked, FILTER_VALIDATE_BOOLEAN);
540540

541-
if (!Token::getInstance($this->container->get(id: 'session'))->verifyToken(
542-
page: 'pmf-csrf-token',
543-
requestToken: $data->csrf,
544-
)) {
541+
if (!Token::getInstance($this->session)->verifyToken(page: 'pmf-csrf-token', requestToken: $data->csrf)) {
545542
return $this->json(['error' => Translation::get(key: 'msgNoPermission')], Response::HTTP_UNAUTHORIZED);
546543
}
547544

@@ -581,10 +578,7 @@ public function sticky(Request $request): JsonResponse
581578
$faqLanguage = Filter::filterVar($data->faqLanguage, FILTER_SANITIZE_SPECIAL_CHARS);
582579
$checked = Filter::filterVar($data->checked, FILTER_VALIDATE_BOOLEAN);
583580

584-
if (!Token::getInstance($this->container->get(id: 'session'))->verifyToken(
585-
page: 'pmf-csrf-token',
586-
requestToken: $data->csrf,
587-
)) {
581+
if (!Token::getInstance($this->session)->verifyToken(page: 'pmf-csrf-token', requestToken: $data->csrf)) {
588582
return $this->json(['error' => Translation::get(key: 'msgNoPermission')], Response::HTTP_UNAUTHORIZED);
589583
}
590584

@@ -625,10 +619,7 @@ public function delete(Request $request): JsonResponse
625619
$faqId = Filter::filterVar($data->faqId, FILTER_VALIDATE_INT);
626620
$faqLanguage = Filter::filterVar($data->faqLanguage, FILTER_SANITIZE_SPECIAL_CHARS);
627621

628-
if (!Token::getInstance($this->container->get(id: 'session'))->verifyToken(
629-
page: 'pmf-csrf-token',
630-
requestToken: $data->csrf,
631-
)) {
622+
if (!Token::getInstance($this->session)->verifyToken(page: 'pmf-csrf-token', requestToken: $data->csrf)) {
632623
return $this->json([
633624
'error' => 'CSRF Token - ' . Translation::get(key: 'msgNoPermission'),
634625
], Response::HTTP_UNAUTHORIZED);
@@ -656,10 +647,7 @@ public function search(Request $request): JsonResponse
656647

657648
$data = json_decode($request->getContent());
658649

659-
if (!Token::getInstance($this->container->get(id: 'session'))->verifyToken(
660-
page: 'pmf-csrf-token',
661-
requestToken: $data->csrf,
662-
)) {
650+
if (!Token::getInstance($this->session)->verifyToken(page: 'pmf-csrf-token', requestToken: $data->csrf)) {
663651
return $this->json(['error' => Translation::get(key: 'msgNoPermission')], Response::HTTP_UNAUTHORIZED);
664652
}
665653

@@ -695,10 +683,7 @@ public function saveOrderOfStickyFaqs(Request $request): JsonResponse
695683

696684
$data = json_decode($request->getContent());
697685

698-
if (!Token::getInstance($this->container->get(id: 'session'))->verifyToken(
699-
page: 'order-stickyfaqs',
700-
requestToken: $data->csrf,
701-
)) {
686+
if (!Token::getInstance($this->session)->verifyToken(page: 'order-stickyfaqs', requestToken: $data->csrf)) {
702687
return $this->json(['error' => Translation::get(key: 'msgNoPermission')], Response::HTTP_UNAUTHORIZED);
703688
}
704689

@@ -716,14 +701,12 @@ public function import(Request $request): JsonResponse
716701
{
717702
$this->userHasPermission(PermissionType::FAQ_ADD);
718703

719-
$session = $this->container->get(id: 'session');
720-
721704
$file = $request->files->get(key: 'file');
722705
if (!isset($file)) {
723706
return $this->json(['error' => 'Bad request: There is no file submitted.'], Response::HTTP_BAD_REQUEST);
724707
}
725708

726-
if (!Token::getInstance($session)->verifyToken(
709+
if (!Token::getInstance($this->session)->verifyToken(
727710
page: 'importfaqs',
728711
requestToken: $request->attributes->get(key: 'csrf'),
729712
)) {

0 commit comments

Comments
 (0)