<?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;
    }
}