feat(followup-audio): separate uploader-only recording delete permission
This commit is contained in:
@@ -79,7 +79,8 @@ try {
|
||||
'detail', 'saveDraft', 'apply', 'retry', 'audio', 'delete', 'reextract'];
|
||||
foreach ($actions as $action) {
|
||||
foreach ([[], ['tcm.diagnosis/edit'], ['tcm.diagnosis/followupAudio'],
|
||||
['tcm.diagnosis/edit', 'tcm.diagnosis/followupAudio']] as $uris) {
|
||||
['tcm.diagnosis/edit', 'tcm.diagnosis/followupAudio'],
|
||||
['tcm.diagnosis/edit', 'tcm.diagnosis/followupAudio', 'tcm.followupAudio/delete']] as $uris) {
|
||||
FollowupPermissionAuthCacheDouble::$uris = $uris;
|
||||
$route = new class($action, $request->ip()) {
|
||||
public array $adminInfo;
|
||||
@@ -93,7 +94,7 @@ try {
|
||||
public function param($name, $default = null) { return $default; }
|
||||
};
|
||||
$result = $middleware->handle($route, static fn () => 'ALLOWED');
|
||||
$expected = count($uris) === 2;
|
||||
$expected = count($uris) >= 2 && ($action !== 'delete' || in_array('tcm.followupAudio/delete', $uris, true));
|
||||
$expect(($result === 'ALLOWED') === $expected, 'middleware ' . $action . ' permission set ' . json_encode($uris));
|
||||
if (!$expected) { $expect($result->getData()['code'] === 0, 'middleware failure envelope'); }
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user