Skip to content

Commit 74d37e3

Browse files
J7FJ7F
authored andcommitted
PES-2876: permissions update - Refactor permission checks to use UserPermissionHelper for improved clarity and maintainability
1 parent 1663a89 commit 74d37e3

File tree

11 files changed

+171
-304
lines changed

11 files changed

+171
-304
lines changed

packetery/controllers/admin/PacketeryCarrierGridController.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
use Packetery\Carrier\CarrierTools;
77
use Packetery\Module\VersionChecker;
88
use Packetery\Tools\MessageManager;
9-
use Packetery\Tools\PermissionHelper;
9+
use Packetery\Tools\UserPermissionHelper;
1010

1111
class PacketeryCarrierGridController extends ModuleAdminController
1212
{
@@ -45,8 +45,8 @@ public function __construct()
4545
// for $this->translator not being null, in PS 1.6
4646
parent::__construct();
4747

48-
if (!PermissionHelper::canViewCarriers()) {
49-
$this->errors[] = 'You do not have permission to access Packeta carriers. Access denied.';
48+
if (!UserPermissionHelper::hasPermission(UserPermissionHelper::SECTION_CARRIERS, UserPermissionHelper::PERMISSION_VIEW)) {
49+
$this->errors[] = $this->l('You do not have permission to access Packeta carriers. Access denied.', 'packeterycarriergridcontroller');
5050
return;
5151
}
5252

@@ -180,7 +180,7 @@ public function initToolbar()
180180
unset($this->toolbar_btn['new']);
181181

182182
// Hide action buttons if user doesn't have edit permissions
183-
if (!PermissionHelper::canEditCarriers()) {
183+
if (!UserPermissionHelper::hasPermission(UserPermissionHelper::SECTION_CARRIERS, UserPermissionHelper::PERMISSION_EDIT)) {
184184
unset($this->toolbar_btn['bulk_action']);
185185
}
186186
}

packetery/controllers/admin/PacketeryLogGridController.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?php
22

33
use Packetery\Log\LogRepository;
4-
use Packetery\Tools\PermissionHelper;
4+
use Packetery\Tools\UserPermissionHelper;
55

66
class PacketeryLogGridController extends ModuleAdminController
77
{
@@ -39,8 +39,8 @@ public function __construct()
3939

4040
parent::__construct();
4141

42-
if (!PermissionHelper::canViewLogs()) {
43-
$this->errors[] = 'You do not have permission to access Packeta logs. Access denied.';
42+
if (!UserPermissionHelper::hasPermission(UserPermissionHelper::SECTION_LOG, UserPermissionHelper::PERMISSION_VIEW)) {
43+
$this->errors[] = $this->l('You do not have permission to access Packeta logs. Access denied.', 'packeteryloggridcontroller');
4444
return;
4545
}
4646

packetery/controllers/admin/PacketeryOrderGridController.php

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636
use Packetery\Order\Tracking;
3737
use Packetery\PacketTracking\PacketStatusFactory;
3838
use Packetery\Tools\ConfigHelper;
39-
use Packetery\Tools\PermissionHelper;
39+
use Packetery\Tools\UserPermissionHelper;
4040

4141
class PacketeryOrderGridController extends ModuleAdminController
4242
{
@@ -110,8 +110,8 @@ public function __construct()
110110
// for $this->translator not being null, in PS 1.6
111111
parent::__construct();
112112

113-
if (!PermissionHelper::canViewOrders()) {
114-
$this->errors[] = 'You do not have permission to access Packeta orders. Access denied.';
113+
if (!UserPermissionHelper::hasPermission(UserPermissionHelper::SECTION_ORDERS, UserPermissionHelper::PERMISSION_VIEW)) {
114+
$this->errors[] = $this->l('You do not have permission to access Packeta orders. Access denied.', 'packeteryordergridcontroller');
115115
return;
116116
}
117117

@@ -240,8 +240,8 @@ private function createPackets(array $ids)
240240

241241
public function processBulkCreatePacket()
242242
{
243-
if (!PermissionHelper::canEditOrders()) {
244-
$this->errors[] = 'You do not have permission to submit shipment.';
243+
if (!UserPermissionHelper::hasPermission(UserPermissionHelper::SECTION_ORDERS, UserPermissionHelper::PERMISSION_EDIT)) {
244+
$this->errors[] = $this->l('You do not have permission to submit shipment.', 'packeteryordergridcontroller');
245245
return;
246246
}
247247

@@ -255,8 +255,8 @@ public function processBulkCreatePacket()
255255

256256
public function processSubmit()
257257
{
258-
if (!PermissionHelper::canEditOrders()) {
259-
$this->errors[] = 'You do not have permission to submit shipment.';
258+
if (!UserPermissionHelper::hasPermission(UserPermissionHelper::SECTION_ORDERS, UserPermissionHelper::PERMISSION_EDIT)) {
259+
$this->errors[] = $this->l('You do not have permission to submit shipment.', 'packeteryordergridcontroller');
260260
return;
261261
}
262262

@@ -355,8 +355,8 @@ private function prepareLabels(array $packetNumbers, $type, $packetsEnhanced = n
355355
*/
356356
public function processBulkLabelPdf()
357357
{
358-
if (!PermissionHelper::canEditOrders()) {
359-
$this->errors[] = 'You do not have permission to print labels.';
358+
if (!UserPermissionHelper::hasPermission(UserPermissionHelper::SECTION_ORDERS, UserPermissionHelper::PERMISSION_EDIT)) {
359+
$this->errors[] = $this->l('You do not have permission to print labels.', 'packeteryordergridcontroller');
360360
return;
361361
}
362362

@@ -379,8 +379,8 @@ public function processBulkLabelPdf()
379379
*/
380380
public function processBulkCarrierLabelPdf()
381381
{
382-
if (!PermissionHelper::canEditOrders()) {
383-
$this->errors[] = 'You do not have permission to print carrier labels.';
382+
if (!UserPermissionHelper::hasPermission(UserPermissionHelper::SECTION_ORDERS, UserPermissionHelper::PERMISSION_EDIT)) {
383+
$this->errors[] = $this->l('You do not have permission to print carrier labels.', 'packeteryordergridcontroller');
384384
return;
385385
}
386386

@@ -410,8 +410,8 @@ public function processBulkCarrierLabelPdf()
410410
*/
411411
public function processPrint()
412412
{
413-
if (!PermissionHelper::canEditOrders()) {
414-
$this->errors[] = 'You do not have permission to print label.';
413+
if (!UserPermissionHelper::hasPermission(UserPermissionHelper::SECTION_ORDERS, UserPermissionHelper::PERMISSION_EDIT)) {
414+
$this->errors[] = $this->l('You do not have permission to print label.', 'packeteryordergridcontroller');
415415
return;
416416
}
417417

@@ -441,8 +441,8 @@ public function processPrint()
441441

442442
public function processBulkCsvExport()
443443
{
444-
if (!PermissionHelper::canViewOrders()) {
445-
$this->errors[] = 'You do not have permission to access Packeta orders. Access denied.';
444+
if (!UserPermissionHelper::hasPermission(UserPermissionHelper::SECTION_ORDERS, UserPermissionHelper::PERMISSION_VIEW)) {
445+
$this->errors[] = $this->l('You do not have permission to access Packeta orders. Access denied.', 'packeteryordergridcontroller');
446446
return;
447447
}
448448

@@ -538,6 +538,7 @@ public function initToolbar()
538538

539539
public function postProcess()
540540
{
541+
541542
// values are saved even before bulk actions
542543
if (
543544
$this->action !== self::ACTION_BULK_LABEL_PDF && $this->action !== self::ACTION_BULK_CARRIER_LABEL_PDF
@@ -547,11 +548,11 @@ public function postProcess()
547548
$orderRepo = $this->getModule()->diContainer->get(OrderRepository::class);
548549
foreach ($_POST as $key => $value) {
549550
if (preg_match('/^weight_(\d+)$/', $key, $matches)) {
550-
if (!PermissionHelper::canEditOrders()) {
551-
$this->errors[] = 'You do not have permission to modify weight.';
551+
if (!UserPermissionHelper::hasPermission(UserPermissionHelper::SECTION_ORDERS, UserPermissionHelper::PERMISSION_EDIT)) {
552+
$this->errors[] = $this->l('You do not have permission to modify order weights.', 'packeteryordergridcontroller');
552553
continue;
553554
}
554-
555+
555556
$orderId = (int)$matches[1];
556557
if ($value === '') {
557558
$value = null;
@@ -665,9 +666,8 @@ public function getWeightEditable($weight, array $row)
665666
$smarty->assign('weight', $weight);
666667
$smarty->assign('orderId', $row['id_order']);
667668

668-
// Disable weight editing if user doesn't have edit permissions or if order has tracking number
669-
$disabled = !PermissionHelper::canEditOrders() || $row['tracking_number'];
670-
$smarty->assign('disabled', $disabled);
669+
$isDisabled = !UserPermissionHelper::hasPermission(UserPermissionHelper::SECTION_ORDERS, UserPermissionHelper::PERMISSION_EDIT) || !empty($row['tracking_number']);
670+
$smarty->assign('disabled', $isDisabled);
671671

672672
return $smarty->fetch(__DIR__ . '/../../views/templates/admin/grid/weightEditable.tpl');
673673
}

packetery/controllers/admin/PacketerySettingController.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<?php
22

3-
use Packetery\Tools\PermissionHelper;
3+
use Packetery\Tools\UserPermissionHelper;
44

55
class PacketerySettingController extends ModuleAdminController
66
{
@@ -14,8 +14,8 @@ public function __construct()
1414

1515
public function initContent()
1616
{
17-
if (!PermissionHelper::canViewConfig()) {
18-
$this->errors[] = 'You do not have permission to configure the Packeta module. Access denied.';
17+
if (!UserPermissionHelper::hasPermission(UserPermissionHelper::SECTION_CONFIG, UserPermissionHelper::PERMISSION_VIEW)) {
18+
$this->errors[] = $this->l('You do not have permission to configure the Packeta module. Access denied.', 'packeterysettingcontroller');
1919
return;
2020
}
2121

packetery/libs/AbstractFormService.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@
1111
use Packetery\Exceptions\FormDataPersistException;
1212
use Packetery\Module\Options;
1313
use Packetery\Tools\ConfigHelper;
14-
use Packetery\Tools\PermissionHelper;
1514
use Packetery\Tools\Tools;
15+
use Packetery\Tools\UserPermissionHelper;
1616

1717
abstract class AbstractFormService
1818
{
@@ -29,7 +29,7 @@ public function __construct(Options $options)
2929
*/
3030
public function handleSubmit()
3131
{
32-
if (!PermissionHelper::canEditConfig()) {
32+
if (!UserPermissionHelper::hasPermission(UserPermissionHelper::SECTION_CONFIG, UserPermissionHelper::PERMISSION_EDIT)) {
3333
throw new FormDataPersistException('You do not have permission to save configuration.');
3434
}
3535

packetery/libs/Carrier/CarrierAdminForm.php

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
use Packetery\ApiCarrier\ApiCarrierRepository;
99
use Packetery\Exceptions\DatabaseException;
1010
use Packetery\Tools\MessageManager;
11-
use Packetery\Tools\PermissionHelper;
11+
use Packetery\Tools\UserPermissionHelper;
1212
use Tools;
1313

1414
class CarrierAdminForm
@@ -89,7 +89,7 @@ public function buildCarrierForm()
8989
}
9090

9191
if (Tools::isSubmit('submitCarrierForm')) {
92-
if (!PermissionHelper::canEditCarriers()) {
92+
if (!UserPermissionHelper::hasPermission(UserPermissionHelper::SECTION_CARRIERS, UserPermissionHelper::PERMISSION_EDIT)) {
9393
$this->error = $this->module->l('You do not have permission to edit carrier settings.', 'carrieradminform');
9494
} else {
9595
$carrierData['id_branch'] = Tools::getValue('id_branch');
@@ -163,7 +163,7 @@ public function buildCarrierOptionsForm()
163163
}
164164

165165
if (Tools::isSubmit('submitCarrierOptionsForm')) {
166-
if (!PermissionHelper::canEditCarriers()) {
166+
if (!UserPermissionHelper::hasPermission(UserPermissionHelper::SECTION_CARRIERS, UserPermissionHelper::PERMISSION_EDIT)) {
167167
$this->error = $this->module->l('You do not have permission to edit carrier options.', 'carrieradminform');
168168
} else {
169169
$this->saveCarrierOptions($carrierData, $apiCarrier);
@@ -289,7 +289,7 @@ public function buildCarrierOptionsForm()
289289
*/
290290
public function saveCarrier(array $carrierData)
291291
{
292-
if (!PermissionHelper::canEditCarriers()) {
292+
if (!UserPermissionHelper::hasPermission(UserPermissionHelper::SECTION_CARRIERS, UserPermissionHelper::PERMISSION_EDIT)) {
293293
$this->error = $this->module->l('You do not have permission to save carrier settings.', 'carrieradminform');
294294
return;
295295
}
@@ -341,7 +341,7 @@ public function saveCarrier(array $carrierData)
341341
*/
342342
public function saveCarrierOptions(array $carrierData, array $apiCarrier)
343343
{
344-
if (!PermissionHelper::canEditCarriers()) {
344+
if (!UserPermissionHelper::hasPermission(UserPermissionHelper::SECTION_CARRIERS, UserPermissionHelper::PERMISSION_EDIT)) {
345345
$this->error = $this->module->l('You do not have permission to save carrier options.', 'carrieradminform');
346346
return;
347347
}

packetery/libs/Order/OrderDetailsUpdater.php

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
use Packetery;
66
use Packetery\Carrier\CarrierTools;
77
use Packetery\Tools\Tools;
8+
use Packetery\Tools\UserPermissionHelper;
89

910
class OrderDetailsUpdater
1011
{
@@ -39,6 +40,14 @@ public function orderUpdate(&$messages, $packeteryOrder, $orderId)
3940
return $packeteryOrder;
4041
}
4142

43+
if (!UserPermissionHelper::hasPermission(UserPermissionHelper::SECTION_ORDERS, UserPermissionHelper::PERMISSION_EDIT)) {
44+
$messages[] = [
45+
'text' => $this->module->l('You do not have permission to update order details.', 'orderdetailsupdater'),
46+
'class' => 'danger',
47+
];
48+
return $packeteryOrder;
49+
}
50+
4251
if ($packeteryOrder['exported']) {
4352
return $packeteryOrder;
4453
}

0 commit comments

Comments
 (0)