Вот проблемы, которые мучают меня в настоящий момент:
1) Как на этапе авторизации проверять, принадлежит ли пользователь компании, на поддомене которой он авторизуется?
2) Как лучше ограничить вывод данных по id текущей компании. Делать в каждом контроллере вручную проверку?
3) Как в шаблонах выводить, к примеру, company.name? app.user.company.name? Мне кажется это не самый корректный способ.
4) Как сделать текущую компанию значением по-умолчанию в роутах? Т.е. сейчас же все разруливаю через роуты (host: "{company_slug}.%domain%") и приходится абсолютно в каждом роуте в шаблоне выводить доп. параметром slug текущей компании, типа:
<a href="{{ path("dashboard.user.list", { "company_slug": app.user.company.slug }) }}">Users</a>
Сейчас вынес часть логики в эвентлистнер как пишут здесь:
knpuniversity.com/screencast/question-answer-day/s...public function listAction() {
$companyManager = $this->container->get('acme.dashboard.company_manager');
$currentCompany = $companyManager->getCurrentCompany();
$userManager = $this->container->get('acme.dashboard.user_manager');
$users = $userManager->findUsersByCompanyId($currentCompany->getId());
return [
'company' => $currentCompany,
'users' => $users,
];
}
Но, помоему, это все еще не предел мечтаний.