Fix subuser management permission scope
This commit is contained in:
@@ -81,6 +81,7 @@ class subusersRoute
|
||||
if ($targetCustomerNumber !== null && $customerNumber !== (int)$targetCustomerNumber) {
|
||||
$this->emitForbidden([$permission]);
|
||||
}
|
||||
self::requirePermission($permission);
|
||||
return $customerNumber;
|
||||
}
|
||||
|
||||
|
||||
@@ -95,3 +95,13 @@ it('only allows invite resend while setup is still pending', function (): void {
|
||||
expect($normalized)->toContain("Driver account already accepted the invitation.");
|
||||
expect($normalized)->toContain("if (!\$subuser->requiresSetup()) {");
|
||||
});
|
||||
|
||||
it('requires own subuser permissions for classic customer users in managed customer scope', function (): void {
|
||||
$routeFile = app_path('routes/subusersRoute.php');
|
||||
expect(is_file($routeFile))->toBeTrue();
|
||||
|
||||
$code = (string)file_get_contents($routeFile);
|
||||
$normalized = preg_replace('/\s+/', ' ', $code);
|
||||
|
||||
expect($normalized)->toContain("\$user = \$auth->get_user(); if (\$user !== false) { \$customerNumber = (int)\$user->customer_number->value(); if (\$customerNumber <= 0) { \$response->error('Unauthorized', 401); } if (\$targetCustomerNumber !== null && \$customerNumber !== (int)\$targetCustomerNumber) { \$this->emitForbidden([\$permission]); } self::requirePermission(\$permission); return \$customerNumber;");
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user