Merge master into branch resolving self-serve lane command conflicts
This commit is contained in:
@@ -507,27 +507,21 @@ class moduleSelfServeRoute
|
||||
);
|
||||
break;
|
||||
case selfserve_lane_command::RESERVE:
|
||||
$this->requireSelfServeLaneCommandPermission(
|
||||
$this->requireOperatorLaneCommandPermission(
|
||||
$lane,
|
||||
$customer_number,
|
||||
'modules_selfserve_lane_command_execute_reserve',
|
||||
false
|
||||
'modules_selfserve_lane_command_execute_reserve'
|
||||
);
|
||||
break;
|
||||
case selfserve_lane_command::RELEASE:
|
||||
$this->requireSelfServeLaneCommandPermission(
|
||||
$this->requireOperatorLaneCommandPermission(
|
||||
$lane,
|
||||
$customer_number,
|
||||
'modules_selfserve_lane_command_execute_release',
|
||||
false
|
||||
'modules_selfserve_lane_command_execute_release'
|
||||
);
|
||||
break;
|
||||
case selfserve_lane_command::RESET:
|
||||
$this->requireSelfServeLaneCommandPermission(
|
||||
$this->requireOperatorLaneCommandPermission(
|
||||
$lane,
|
||||
$customer_number,
|
||||
'modules_selfserve_lane_command_execute_reset',
|
||||
false
|
||||
'modules_selfserve_lane_command_execute_reset'
|
||||
);
|
||||
break;
|
||||
case selfserve_lane_command::OPEN_PROPERTY_ACCESS_GATE:
|
||||
@@ -1484,7 +1478,7 @@ class moduleSelfServeRoute
|
||||
return;
|
||||
}
|
||||
|
||||
if ($allow_customer_self_serve) {
|
||||
if ($allow_customer_self_serve && $this->isSelfServeModuleEnabled()) {
|
||||
$customer_allowed = $requires_active_wash
|
||||
? $this->canCustomerUseActiveOperationalSelfServeLane($lane, $customer_number, $allow_department_active_wash)
|
||||
: $this->canCustomerUseSelfServeLane($lane, $customer_number);
|
||||
@@ -1501,6 +1495,18 @@ class moduleSelfServeRoute
|
||||
);
|
||||
}
|
||||
|
||||
private function requireOperatorLaneCommandPermission(selfserve_lane $lane, string $command_permission): void
|
||||
{
|
||||
if (empty($lane->department_lane) || empty($lane->department_lane->department)) {
|
||||
global $response;
|
||||
$response->error('Lane department not found', 404);
|
||||
}
|
||||
|
||||
self::requireDepartmentAccess((string)$lane->department_lane->department->value());
|
||||
self::requirePermission('modules_selfserve_lane_command_execute');
|
||||
self::requirePermission($command_permission);
|
||||
}
|
||||
|
||||
private function requirePropertyGateCommandPermission(string $permission, selfserve_lane $lane, int $customer_number): void
|
||||
{
|
||||
$elevated_permissions = [
|
||||
@@ -1518,6 +1524,15 @@ class moduleSelfServeRoute
|
||||
$this->emitForbidden([...$elevated_permissions, self::CUSTOMER_SELFSERVE_PERMISSION]);
|
||||
}
|
||||
|
||||
protected function isSelfServeModuleEnabled(): bool
|
||||
{
|
||||
try {
|
||||
return (bool)(new selfserve())->config->enabled->getVariableValue();
|
||||
} catch (\Throwable) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
protected function canCustomerUseSelfServeLane(selfserve_lane $lane, int $customer_number): bool
|
||||
{
|
||||
return $customer_number > 0
|
||||
|
||||
Reference in New Issue
Block a user