30 lines
841 B
PHP
30 lines
841 B
PHP
<?php
|
|
namespace EEPROM;
|
|
|
|
use Index\Http\HttpUri;
|
|
use Index\Http\Routing\HandlerContext;
|
|
use Index\Http\Routing\Routes\RouteInfo;
|
|
use Index\Http\Routing\AccessControl\{AccessControl,SimpleAccessControlHandler};
|
|
|
|
class EEPROMAccessControlHandler extends SimpleAccessControlHandler {
|
|
public function __construct(
|
|
private array $origins,
|
|
) {}
|
|
|
|
#[\Override]
|
|
public function checkAccess(
|
|
HandlerContext $context,
|
|
AccessControl $accessControl,
|
|
HttpUri $origin,
|
|
?RouteInfo $routeInfo = null,
|
|
): string|bool {
|
|
if($accessControl->credentials) {
|
|
$host = '.' . $origin->host;
|
|
foreach($this->origins as $allowOrigin)
|
|
if(str_ends_with($host, '.' . $allowOrigin))
|
|
return (string)$origin;
|
|
}
|
|
|
|
return true;
|
|
}
|
|
}
|