/** * @param Request $request * @param UserInterface $user * * @return UserInterface */ protected function refreshLanguagesByAliases(UserInterface $user) { $sites = array(); $siteIds = array(); if ($user->isSuperAdmin()) { $sites = $this->container->get('open_orchestra_model.repository.site')->findByDeleted(false); } else { foreach ($user->getGroups() as $group) { /** @var SiteInterface $site */ $site = $group->getSite(); if (!$site->isDeleted() && !in_array($site->getSiteId(), $siteIds)) { $siteIds[] = $site->getSiteId(); $sites[] = $site; } } } foreach ($sites as $site) { if (!$user->hasLanguageBySite($site->getSiteId())) { $user->setLanguageBySite($site->getSiteId(), $site->getDefaultLanguage()); } } return $user; }