Force PLA to not allow guests viewing the site, and thus requiring a login.

This should close #288
This commit is contained in:
2025-02-26 17:19:23 +11:00
parent f20d9891f2
commit 0684424328
8 changed files with 74 additions and 52 deletions

View File

@@ -214,7 +214,7 @@ final class Server
* @throws ObjectNotFoundException
* @testedin TranslateOidTest::testRootDSE();
*/
public static function rootDSE(?string $connection=NULL,Carbon $cachetime=NULL): ?Model
public static function rootDSE(?string $connection=NULL,?Carbon $cachetime=NULL): ?Model
{
$e = new Entry;

View File

@@ -0,0 +1,26 @@
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Cookie;
class AllowAnonymous
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure(\Illuminate\Http\Request): (\Illuminate\Http\Response|\Illuminate\Http\RedirectResponse) $next
* @return \Illuminate\Http\Response|\Illuminate\Http\RedirectResponse
*/
public function handle(Request $request,Closure $next): mixed
{
if (((! Cookie::has('username_encrypt')) || (! Cookie::has('password_encrypt'))) && (! config('pla.allow_guest',FALSE)))
return redirect()
->to('/login');
return $next($request);
}
}

View File

@@ -31,10 +31,9 @@ class AppServiceProvider extends ServiceProvider
$this->loadViewsFrom(__DIR__.'/../../resources/themes/architect/views/','architect');
// Enable pluck on collections to work on private values
Collection::macro('ppluck', function ($attr) {
return $this->map(function (object $item) use ($attr) {
return $item->{$attr};
})->values();
});
Collection::macro('ppluck',
fn($attr)=>$this
->map(fn($item)=>$item->{$attr})
->values());
}
}