mirror of https://github.com/pixelfed/pixelfed
Merge pull request #7161 from shleeable/fix/admin-controllers-dangerzone-middleware
Require dangerzone sudo mode on curated register, shadow filter and page admin controllerspull/7167/head
commit
f81ba9b8d8
@ -0,0 +1,37 @@
|
||||
<?php
|
||||
|
||||
use App\Http\Controllers\AdminCuratedRegisterController;
|
||||
use App\Http\Controllers\AdminShadowFilterController;
|
||||
use App\Http\Controllers\PageController;
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Admin controllers must enforce sudo mode
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| AdminController applies the `dangerzone` (sudo mode / RequirePassword)
|
||||
| middleware to every admin route. Controllers that expose equally sensitive
|
||||
| admin operations must do the same so a stolen long-lived session cannot be
|
||||
| used to modify pages, shadow-filter users, or approve registrations without
|
||||
| a recent password confirmation.
|
||||
|
|
||||
*/
|
||||
|
||||
function controllerMiddleware(object $controller): array
|
||||
{
|
||||
return collect($controller->getMiddleware())
|
||||
->pluck('middleware')
|
||||
->all();
|
||||
}
|
||||
|
||||
it('requires dangerzone middleware on PageController', function () {
|
||||
expect(controllerMiddleware(new PageController))->toContain('dangerzone');
|
||||
});
|
||||
|
||||
it('requires dangerzone middleware on AdminShadowFilterController', function () {
|
||||
expect(controllerMiddleware(new AdminShadowFilterController))->toContain('dangerzone');
|
||||
});
|
||||
|
||||
it('requires dangerzone middleware on AdminCuratedRegisterController', function () {
|
||||
expect(controllerMiddleware(new AdminCuratedRegisterController))->toContain('dangerzone');
|
||||
});
|
||||
Loading…
Reference in New Issue