• Как организовать доступ по канонам DDD?

    @vova07
    Как я уже писал это черновик и этот код не надо воспринимать как решение задачи.
    Я попробовал донести идею проектирования.
    Я не понял ваш вопрос!

    В каждом приложении в любом запросе к нему есть данные по пользователю. То есть он или есть или его нет (это гость, неаутентифицированный клиент, шпион, или еще что-то).

    В таком случае вы легко в контроллере АПИ например определяете что нужные параметры.
    Например код ниже показывает все доступные директории для текущего пользователя. Или универсальнее сказать для текущего токен ключа.
    // "GET http://my-cool-website.com/api/clients/files"
    public function get(Request $request, Response $response, GetDirectoriesByOwner $service)
    {
      $ownerId = $this->app->getUser()->getId();
      
      $body = new Body($service->handle($ownerId));
    
      return $response->withBody($body);
    }


    Как я уже писал в комментариях к коду. Для каждого случая вам надо написать свой юз кэйс.
    Их может быть сколько угодно, все в зависимости от вашего функционала: RetrieveHidenDirectoriesByOwnerId, RetrieveDeletedDirectoriesByOwnerId, CreateDirectory, HideDirectory, RemoveDirectory, RetrieveAllDirectoriesByOwnerId и так далее. Каждый из них выполняет строго одну операцию не больше.