Merge master into branch resolving self-serve lane command conflicts

This commit is contained in:
copilot-swe-agent[bot]
2026-06-02 08:01:46 +00:00
committed by GitHub
3 changed files with 185 additions and 13 deletions
@@ -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