Skip to content

Commit b1a9a59

Browse files
committed
Update middleware to handle wildcards correctly.
1 parent 0f4648b commit b1a9a59

File tree

1 file changed

+12
-7
lines changed

1 file changed

+12
-7
lines changed

app/Http/Middleware/APISecretToken.php

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -93,13 +93,18 @@ public function authenticate(Request $request, Route $route)
9393
}
9494
}
9595

96-
$permission = APIPermission::where('key_id', $key->id)
97-
->where('permission', $request->route()->getName())
98-
->orWhere('permission', '*')
99-
->first();
100-
if (!$permission) {
101-
APILogService::log($request, 'You do not have permission to access this resource.');
102-
throw new AccessDeniedHttpException('You do not have permission to access this resource.');
96+
$permission = APIPermission::where('key_id', $key->id)->where('permission', $request->route()->getName());
97+
98+
// Suport Wildcards
99+
if (starts_with($request->route()->getName(), 'api.user')) {
100+
$permission->orWhere('permission', 'api.user.*');
101+
} else if(starts_with($request->route()->getName(), 'api.admin')) {
102+
$permission->orWhere('permission', 'api.admin.*');
103+
}
104+
105+
if (!$permission->first()) {
106+
APILogService::log($request, 'You do not have permission to access this resource. This API Key requires the ' . $request->route()->getName() . ' permission node.');
107+
throw new AccessDeniedHttpException('You do not have permission to access this resource. This API Key requires the ' . $request->route()->getName() . ' permission node.');
103108
}
104109
}
105110

0 commit comments

Comments
 (0)