|
|
@@ -6,9 +6,10 @@ namespace App\Service\Access;
|
|
|
|
|
|
use App\ApiResources\Profile\AccessProfile;
|
|
|
use App\Entity\Access\Access;
|
|
|
+use App\Entity\Access\AccessPreference;
|
|
|
use App\Repository\Access\AccessRepository;
|
|
|
use App\Service\Organization\OrganizationProfileCreator;
|
|
|
-use App\Test\Service\Access\AccessProfileCreatorTest;
|
|
|
+use Doctrine\ORM\EntityManagerInterface;
|
|
|
use Symfony\Component\Security\Core\Exception\AuthenticationException;
|
|
|
|
|
|
/**
|
|
|
@@ -20,6 +21,7 @@ class AccessProfileCreator
|
|
|
private readonly OrganizationProfileCreator $organizationProfileCreator,
|
|
|
private readonly AccessRepository $accessRepository,
|
|
|
private readonly Utils $accessUtils,
|
|
|
+ private readonly EntityManagerInterface $entityManager
|
|
|
) {
|
|
|
}
|
|
|
|
|
|
@@ -37,6 +39,10 @@ class AccessProfileCreator
|
|
|
throw new AuthenticationException('no_valid_access', 401);
|
|
|
}
|
|
|
|
|
|
+ if(is_null($access->getPreferences())){
|
|
|
+ $this->createAccessPrefence($access);
|
|
|
+ }
|
|
|
+
|
|
|
// L'Access en paramètre est celui de la connexion
|
|
|
$mainAccessProfile = $this->createCompleteAccessProfile($access);
|
|
|
|
|
|
@@ -102,6 +108,18 @@ class AccessProfileCreator
|
|
|
->setIsSuperAdminAccess($access->getSuperAdminAccess())
|
|
|
->setOrganization(
|
|
|
$this->organizationProfileCreator->createLightOrganizationProfile($access->getOrganization())
|
|
|
- );
|
|
|
+ )
|
|
|
+ ->setAccessPreferenceId($access->getPreferences()->getId());
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * Créer l'entrée des AccessPreference en base
|
|
|
+ * @see AccessProfileCreatorTest::testCreateAccessPreference()
|
|
|
+ * @param Access $access
|
|
|
+ * @return void
|
|
|
+ */
|
|
|
+ public function createAccessPrefence(Access $access){
|
|
|
+ $access->setPreferences(new AccessPreference());
|
|
|
+ $this->entityManager->flush($access);
|
|
|
}
|
|
|
}
|