renamed entity

This commit is contained in:
Charles 2026-02-16 16:52:12 +01:00
parent 3df22c2dbf
commit 72b40e965a
19 changed files with 140 additions and 81 deletions

View File

@ -0,0 +1,53 @@
<?php
declare(strict_types=1);
namespace DoctrineMigrations;
use Doctrine\DBAL\Schema\Schema;
use Doctrine\Migrations\AbstractMigration;
/**
* Auto-generated Migration: Please modify to your needs!
*/
final class Version20260216155056 extends AbstractMigration
{
public function getDescription(): string
{
return '';
}
public function up(Schema $schema): void
{
// this up() migration is auto-generated, please modify it to your needs
$this->addSql('DROP SEQUENCE user_organizaton_app_id_seq CASCADE');
$this->addSql('CREATE TABLE user_organization_app (id SERIAL NOT NULL, user_organization_id INT NOT NULL, application_id INT NOT NULL, created_at TIMESTAMP(0) WITHOUT TIME ZONE NOT NULL, is_active BOOLEAN NOT NULL, PRIMARY KEY(id))');
$this->addSql('CREATE INDEX IDX_BEF66DF12014CF51 ON user_organization_app (user_organization_id)');
$this->addSql('CREATE INDEX IDX_BEF66DF13E030ACD ON user_organization_app (application_id)');
$this->addSql('COMMENT ON COLUMN user_organization_app.created_at IS \'(DC2Type:datetime_immutable)\'');
$this->addSql('ALTER TABLE user_organization_app ADD CONSTRAINT FK_BEF66DF12014CF51 FOREIGN KEY (user_organization_id) REFERENCES users_organizations (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
$this->addSql('ALTER TABLE user_organization_app ADD CONSTRAINT FK_BEF66DF13E030ACD FOREIGN KEY (application_id) REFERENCES apps (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
$this->addSql('ALTER TABLE user_organizaton_app DROP CONSTRAINT fk_2c952fc72014cf51');
$this->addSql('ALTER TABLE user_organizaton_app DROP CONSTRAINT fk_2c952fc73e030acd');
$this->addSql('ALTER TABLE user_organizaton_app DROP CONSTRAINT fk_2c952fc7d60322ac');
$this->addSql('DROP TABLE user_organizaton_app');
}
public function down(Schema $schema): void
{
// this down() migration is auto-generated, please modify it to your needs
$this->addSql('CREATE SCHEMA public');
$this->addSql('CREATE SEQUENCE user_organizaton_app_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
$this->addSql('CREATE TABLE user_organizaton_app (id SERIAL NOT NULL, user_organization_id INT NOT NULL, role_id INT DEFAULT NULL, application_id INT NOT NULL, created_at TIMESTAMP(0) WITHOUT TIME ZONE NOT NULL, is_active BOOLEAN NOT NULL, PRIMARY KEY(id))');
$this->addSql('CREATE INDEX idx_2c952fc72014cf51 ON user_organizaton_app (user_organization_id)');
$this->addSql('CREATE INDEX idx_2c952fc73e030acd ON user_organizaton_app (application_id)');
$this->addSql('CREATE INDEX idx_2c952fc7d60322ac ON user_organizaton_app (role_id)');
$this->addSql('COMMENT ON COLUMN user_organizaton_app.created_at IS \'(DC2Type:datetime_immutable)\'');
$this->addSql('ALTER TABLE user_organizaton_app ADD CONSTRAINT fk_2c952fc72014cf51 FOREIGN KEY (user_organization_id) REFERENCES users_organizations (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
$this->addSql('ALTER TABLE user_organizaton_app ADD CONSTRAINT fk_2c952fc73e030acd FOREIGN KEY (application_id) REFERENCES apps (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
$this->addSql('ALTER TABLE user_organizaton_app ADD CONSTRAINT fk_2c952fc7d60322ac FOREIGN KEY (role_id) REFERENCES roles (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
$this->addSql('ALTER TABLE user_organization_app DROP CONSTRAINT FK_BEF66DF12014CF51');
$this->addSql('ALTER TABLE user_organization_app DROP CONSTRAINT FK_BEF66DF13E030ACD');
$this->addSql('DROP TABLE user_organization_app');
}
}

View File

@ -51,7 +51,7 @@ class DeleteRoleCommand extends Command
} }
// Check if role is being used (optional safety check) // Check if role is being used (optional safety check)
$usageCount = $this->entityManager->getRepository(\App\Entity\UserOrganizatonApp::class) $usageCount = $this->entityManager->getRepository(\App\Entity\UserOrganizationApp::class)
->count(['role' => $role]); ->count(['role' => $role]);
if ($usageCount > 0) { if ($usageCount > 0) {

View File

@ -6,7 +6,7 @@ use App\Entity\Actions;
use App\Entity\Apps; use App\Entity\Apps;
use App\Entity\Roles; use App\Entity\Roles;
use App\Entity\User; use App\Entity\User;
use App\Entity\UserOrganizatonApp; use App\Entity\UserOrganizationApp;
use App\Entity\UsersOrganizations; use App\Entity\UsersOrganizations;
use App\Form\OrganizationForm; use App\Form\OrganizationForm;
use App\Repository\OrganizationsRepository; use App\Repository\OrganizationsRepository;

View File

@ -5,7 +5,7 @@ namespace App\Controller;
use App\Entity\Apps; use App\Entity\Apps;
use App\Entity\Roles; use App\Entity\Roles;
use App\Entity\User; use App\Entity\User;
use App\Entity\UserOrganizatonApp; use App\Entity\UserOrganizationApp;
use App\Entity\UsersOrganizations; use App\Entity\UsersOrganizations;
use App\Form\UserForm; use App\Form\UserForm;
use App\Repository\AppsRepository; use App\Repository\AppsRepository;

View File

@ -0,0 +1,20 @@
<?php
declare(strict_types=1);
namespace App\Controller\api\Check;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Attribute\Route;
#[Route(path: '/api/v1/check', name: 'api_check_')]
class EasyCheckController extends AbstractController
{
#[Route('/easy-check')]
public function index(): Response
{
return $this->render('easy_check/index.html.twig');
}
}

View File

@ -38,9 +38,9 @@ class Apps
private ?string $descriptionSmall = null; private ?string $descriptionSmall = null;
/** /**
* @var Collection<int, UserOrganizatonApp> * @var Collection<int, UserOrganizationApp>
*/ */
#[ORM\OneToMany(targetEntity: UserOrganizatonApp::class, mappedBy: 'application')] #[ORM\OneToMany(targetEntity: UserOrganizationApp::class, mappedBy: 'application')]
private Collection $userOrganizatonApps; private Collection $userOrganizatonApps;
/** /**
@ -152,14 +152,14 @@ class Apps
} }
/** /**
* @return Collection<int, UserOrganizatonApp> * @return Collection<int, UserOrganizationApp>
*/ */
public function getUserOrganizatonApps(): Collection public function getUserOrganizatonApps(): Collection
{ {
return $this->userOrganizatonApps; return $this->userOrganizatonApps;
} }
public function addUserOrganizatonApp(UserOrganizatonApp $userOrganizatonApp): static public function addUserOrganizatonApp(UserOrganizationApp $userOrganizatonApp): static
{ {
if (!$this->userOrganizatonApps->contains($userOrganizatonApp)) { if (!$this->userOrganizatonApps->contains($userOrganizatonApp)) {
$this->userOrganizatonApps->add($userOrganizatonApp); $this->userOrganizatonApps->add($userOrganizatonApp);
@ -169,7 +169,7 @@ class Apps
return $this; return $this;
} }
public function removeUserOrganizatonApp(UserOrganizatonApp $userOrganizatonApp): static public function removeUserOrganizatonApp(UserOrganizationApp $userOrganizatonApp): static
{ {
if ($this->userOrganizatonApps->removeElement($userOrganizatonApp)) { if ($this->userOrganizatonApps->removeElement($userOrganizatonApp)) {
if ($userOrganizatonApp->getApplication() === $this) { if ($userOrganizatonApp->getApplication() === $this) {

View File

@ -56,9 +56,9 @@ class Organizations
private Collection $actions; private Collection $actions;
/** /**
* @var Collection<int, UserOrganizatonApp> * @var Collection<int, UserOrganizationApp>
*/ */
#[ORM\OneToMany(targetEntity: UserOrganizatonApp::class, mappedBy: 'organization')] #[ORM\OneToMany(targetEntity: UserOrganizationApp::class, mappedBy: 'organization')]
private Collection $userOrganizatonApps; private Collection $userOrganizatonApps;
#[ORM\Column(length: 4, nullable: true)] #[ORM\Column(length: 4, nullable: true)]
@ -238,14 +238,14 @@ class Organizations
} }
/** /**
* @return Collection<int, UserOrganizatonApp> * @return Collection<int, UserOrganizationApp>
*/ */
public function getUserOrganizatonApps(): Collection public function getUserOrganizatonApps(): Collection
{ {
return $this->userOrganizatonApps; return $this->userOrganizatonApps;
} }
public function addUserOrganizatonApp(UserOrganizatonApp $userOrganizatonApp): static public function addUserOrganizatonApp(UserOrganizationApp $userOrganizatonApp): static
{ {
if (!$this->userOrganizatonApps->contains($userOrganizatonApp)) { if (!$this->userOrganizatonApps->contains($userOrganizatonApp)) {
$this->userOrganizatonApps->add($userOrganizatonApp); $this->userOrganizatonApps->add($userOrganizatonApp);
@ -255,7 +255,7 @@ class Organizations
return $this; return $this;
} }
public function removeUserOrganizatonApp(UserOrganizatonApp $userOrganizatonApp): static public function removeUserOrganizatonApp(UserOrganizationApp $userOrganizatonApp): static
{ {
if ($this->userOrganizatonApps->removeElement($userOrganizatonApp)) { if ($this->userOrganizatonApps->removeElement($userOrganizatonApp)) {
// set the owning side to null (unless already changed) // set the owning side to null (unless already changed)

View File

@ -6,7 +6,7 @@ use App\Repository\UserOrganizatonAppRepository;
use Doctrine\ORM\Mapping as ORM; use Doctrine\ORM\Mapping as ORM;
#[ORM\Entity(repositoryClass: UserOrganizatonAppRepository::class)] #[ORM\Entity(repositoryClass: UserOrganizatonAppRepository::class)]
class UserOrganizatonApp class UserOrganizationApp
{ {
#[ORM\Id] #[ORM\Id]
#[ORM\GeneratedValue] #[ORM\GeneratedValue]
@ -16,17 +16,15 @@ class UserOrganizatonApp
#[ORM\Column] #[ORM\Column]
private ?\DateTimeImmutable $createdAt = null; private ?\DateTimeImmutable $createdAt = null;
#[ORM\ManyToOne]
private ?Roles $role = null;
#[ORM\Column] #[ORM\Column]
private ?bool $isActive; private ?bool $isActive;
#[ORM\ManyToOne(inversedBy: 'userOrganizatonApps')] #[ORM\ManyToOne(inversedBy: 'userOrganizationApps')]
#[ORM\JoinColumn(nullable: false)] #[ORM\JoinColumn(nullable: false)]
private ?UsersOrganizations $userOrganization = null; private ?UsersOrganizations $userOrganization = null;
#[ORM\ManyToOne(inversedBy: 'userOrganizatonApps')] #[ORM\ManyToOne(inversedBy: 'userOrganizationApps')]
#[ORM\JoinColumn(nullable: false)] #[ORM\JoinColumn(nullable: false)]
private ?Apps $application = null; private ?Apps $application = null;
@ -53,18 +51,6 @@ class UserOrganizatonApp
return $this; return $this;
} }
public function getRole(): ?Roles
{
return $this->role;
}
public function setRole(?Roles $role): static
{
$this->role = $role;
return $this;
}
public function isActive(): ?bool public function isActive(): ?bool
{ {
return $this->isActive; return $this->isActive;

View File

@ -30,9 +30,9 @@ class UsersOrganizations
private ?\DateTimeImmutable $createdAt = null; private ?\DateTimeImmutable $createdAt = null;
/** /**
* @var Collection<int, UserOrganizatonApp> * @var Collection<int, UserOrganizationApp>
*/ */
#[ORM\OneToMany(targetEntity: UserOrganizatonApp::class, mappedBy: 'userOrganization')] #[ORM\OneToMany(targetEntity: UserOrganizationApp::class, mappedBy: 'userOrganization')]
private Collection $userOrganizatonApps; private Collection $userOrganizatonApps;
#[ORM\Column(length: 255, nullable: true)] #[ORM\Column(length: 255, nullable: true)]
@ -98,14 +98,14 @@ class UsersOrganizations
} }
/** /**
* @return Collection<int, UserOrganizatonApp> * @return Collection<int, UserOrganizationApp>
*/ */
public function getUserOrganizatonApps(): Collection public function getUserOrganizatonApps(): Collection
{ {
return $this->userOrganizatonApps; return $this->userOrganizatonApps;
} }
public function addUserOrganizatonApp(UserOrganizatonApp $userOrganizatonApp): static public function addUserOrganizatonApp(UserOrganizationApp $userOrganizatonApp): static
{ {
if (!$this->userOrganizatonApps->contains($userOrganizatonApp)) { if (!$this->userOrganizatonApps->contains($userOrganizatonApp)) {
$this->userOrganizatonApps->add($userOrganizatonApp); $this->userOrganizatonApps->add($userOrganizatonApp);
@ -115,7 +115,7 @@ class UsersOrganizations
return $this; return $this;
} }
public function removeUserOrganizatonApp(UserOrganizatonApp $userOrganizatonApp): static public function removeUserOrganizatonApp(UserOrganizationApp $userOrganizatonApp): static
{ {
if ($this->userOrganizatonApps->removeElement($userOrganizatonApp)) { if ($this->userOrganizatonApps->removeElement($userOrganizatonApp)) {
// set the owning side to null (unless already changed) // set the owning side to null (unless already changed)

View File

@ -3,18 +3,18 @@
namespace App\Repository; namespace App\Repository;
use App\Entity\User; use App\Entity\User;
use App\Entity\UserOrganizatonApp; use App\Entity\UserOrganizationApp;
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository; use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
use Doctrine\Persistence\ManagerRegistry; use Doctrine\Persistence\ManagerRegistry;
/** /**
* @extends ServiceEntityRepository<UserOrganizatonApp> * @extends ServiceEntityRepository<UserOrganizationApp>
*/ */
class UserOrganizatonAppRepository extends ServiceEntityRepository class UserOrganizatonAppRepository extends ServiceEntityRepository
{ {
public function __construct(ManagerRegistry $registry) public function __construct(ManagerRegistry $registry)
{ {
parent::__construct($registry, UserOrganizatonApp::class); parent::__construct($registry, UserOrganizationApp::class);
} }
// /** // /**

View File

@ -5,7 +5,7 @@ namespace App\Service;
use App\Entity\Apps; use App\Entity\Apps;
use App\Entity\Organizations; use App\Entity\Organizations;
use App\Entity\Roles; use App\Entity\Roles;
use App\Entity\UserOrganizatonApp; use App\Entity\UserOrganizationApp;
use App\Entity\UsersOrganizations; use App\Entity\UsersOrganizations;
use App\Repository\UsersOrganizationsRepository; use App\Repository\UsersOrganizationsRepository;
use App\Service\LoggerService; use App\Service\LoggerService;
@ -145,7 +145,7 @@ class OrganizationsService
$adminUOs = $this->uoRepository->findBy(['organization' => $data['organization'], 'isActive' => true]); $adminUOs = $this->uoRepository->findBy(['organization' => $data['organization'], 'isActive' => true]);
foreach ($adminUOs as $adminUO) { foreach ($adminUOs as $adminUO) {
$uoa = $this->entityManager->getRepository(UserOrganizatonApp::class) $uoa = $this->entityManager->getRepository(UserOrganizationApp::class)
->findOneBy([ ->findOneBy([
'userOrganization' => $adminUO, 'userOrganization' => $adminUO,
'role' => $roleAdmin, 'role' => $roleAdmin,

View File

@ -5,7 +5,7 @@ namespace App\Service;
use App\Entity\Apps; use App\Entity\Apps;
use App\Entity\Roles; use App\Entity\Roles;
use App\Entity\User; use App\Entity\User;
use App\Entity\UserOrganizatonApp; use App\Entity\UserOrganizationApp;
use App\Entity\UsersOrganizations; use App\Entity\UsersOrganizations;
use App\Service\ActionService; use App\Service\ActionService;
use App\Service\LoggerService; use App\Service\LoggerService;
@ -76,9 +76,9 @@ class UserOrganizationAppService
public function deactivateAllUserOrganizationsAppLinks(UsersOrganizations $userOrganization, Apps $app = null): void public function deactivateAllUserOrganizationsAppLinks(UsersOrganizations $userOrganization, Apps $app = null): void
{ {
if($app) { if($app) {
$uoas = $this->entityManager->getRepository(UserOrganizatonApp::class)->findBy(['userOrganization' => $userOrganization, 'application' => $app, 'isActive' => true]); $uoas = $this->entityManager->getRepository(UserOrganizationApp::class)->findBy(['userOrganization' => $userOrganization, 'application' => $app, 'isActive' => true]);
} else { } else {
$uoas = $this->entityManager->getRepository(UserOrganizatonApp::class)->findBy(['userOrganization' => $userOrganization, 'isActive' => true]); $uoas = $this->entityManager->getRepository(UserOrganizationApp::class)->findBy(['userOrganization' => $userOrganization, 'isActive' => true]);
} }
foreach ($uoas as $uoa) { foreach ($uoas as $uoa) {
try{ try{
@ -123,7 +123,7 @@ class UserOrganizationAppService
): void { ): void {
// Fetch existing UserOrganizationApp links for this user and application // Fetch existing UserOrganizationApp links for this user and application
$uoas = $this->entityManager->getRepository(UserOrganizatonApp::class)->findBy([ $uoas = $this->entityManager->getRepository(UserOrganizationApp::class)->findBy([
'userOrganization' => $uo, 'userOrganization' => $uo,
'application' => $application, 'application' => $application,
]); ]);
@ -191,7 +191,7 @@ class UserOrganizationAppService
$role = $this->entityManager->getRepository(Roles::class)->find($roleId); $role = $this->entityManager->getRepository(Roles::class)->find($roleId);
if ($role) { if ($role) {
// Create new user-organization-application role link // Create new user-organization-application role link
$newUoa = new UserOrganizatonApp(); $newUoa = new UserOrganizationApp();
$newUoa->setUserOrganization($uo); $newUoa->setUserOrganization($uo);
$newUoa->setApplication($application); $newUoa->setApplication($application);
$newUoa->setRole($role); $newUoa->setRole($role);
@ -224,19 +224,19 @@ class UserOrganizationAppService
/** /**
* Attribute the role Admin to the user if the user has the role Super Admin * Attribute the role Admin to the user if the user has the role Super Admin
* *
* @param UserOrganizatonApp $uoa * @param UserOrganizationApp $uoa
* *
* @return void * @return void
*/ */
public function ensureAdminRoleForSuperAdmin(UserOrganizatonApp $uoa): void public function ensureAdminRoleForSuperAdmin(UserOrganizationApp $uoa): void
{ {
$uoaAdmin = $this->entityManager->getRepository(UserOrganizatonApp::class)->findOneBy([ $uoaAdmin = $this->entityManager->getRepository(UserOrganizationApp::class)->findOneBy([
'userOrganization' => $uoa->getUserOrganization(), 'userOrganization' => $uoa->getUserOrganization(),
'application' => $uoa->getApplication(), 'application' => $uoa->getApplication(),
'role' => $this->entityManager->getRepository(Roles::class)->findOneBy(['name' => 'ADMIN']) 'role' => $this->entityManager->getRepository(Roles::class)->findOneBy(['name' => 'ADMIN'])
]); ]);
if(!$uoaAdmin) { if(!$uoaAdmin) {
$uoaAdmin = new UserOrganizatonApp(); $uoaAdmin = new UserOrganizationApp();
$uoaAdmin->setUserOrganization($uoa->getUserOrganization()); $uoaAdmin->setUserOrganization($uoa->getUserOrganization());
$uoaAdmin->setApplication($uoa->getApplication()); $uoaAdmin->setApplication($uoa->getApplication());
$uoaAdmin->setRole($this->entityManager->getRepository(Roles::class)->findOneBy(['name' => 'ADMIN'])); $uoaAdmin->setRole($this->entityManager->getRepository(Roles::class)->findOneBy(['name' => 'ADMIN']));
@ -260,7 +260,7 @@ class UserOrganizationAppService
$uos = $this->entityManager->getRepository(UsersOrganizations::class)->findBy(['users' => $user]); $uos = $this->entityManager->getRepository(UsersOrganizations::class)->findBy(['users' => $user]);
$apps = []; $apps = [];
foreach ($uos as $uo) { foreach ($uos as $uo) {
$uoas = $this->entityManager->getRepository(UserOrganizatonApp::class)->findBy(['userOrganization' => $uo, 'isActive' => true]); $uoas = $this->entityManager->getRepository(UserOrganizationApp::class)->findBy(['userOrganization' => $uo, 'isActive' => true]);
foreach ($uoas as $uoa) { foreach ($uoas as $uoa) {
$app = $uoa->getApplication(); $app = $uoa->getApplication();
if (!in_array($app, $apps, true)) { if (!in_array($app, $apps, true)) {

View File

@ -6,7 +6,7 @@ namespace App\Service;
use App\Entity\Organizations; use App\Entity\Organizations;
use App\Entity\Roles; use App\Entity\Roles;
use App\Entity\User; use App\Entity\User;
use App\Entity\UserOrganizatonApp; use App\Entity\UserOrganizationApp;
use App\Entity\UsersOrganizations; use App\Entity\UsersOrganizations;
use App\Repository\RolesRepository; use App\Repository\RolesRepository;
use DateTimeImmutable; use DateTimeImmutable;
@ -361,7 +361,7 @@ class UserService
->findBy(['users' => $user, 'isActive' => true]); ->findBy(['users' => $user, 'isActive' => true]);
$hasRole = false; $hasRole = false;
foreach ($uos as $uo) { foreach ($uos as $uo) {
$uoa = $this->entityManager->getRepository(UserOrganizatonApp::class) $uoa = $this->entityManager->getRepository(UserOrganizationApp::class)
->findBy([ ->findBy([
'userOrganization' => $uo, 'userOrganization' => $uo,
'isActive' => true, 'isActive' => true,

View File

@ -5,7 +5,7 @@ namespace App\Tests\Controller;
use App\Entity\Apps; use App\Entity\Apps;
use App\Entity\Organizations; use App\Entity\Organizations;
use App\Entity\Roles; use App\Entity\Roles;
use App\Entity\UserOrganizatonApp; use App\Entity\UserOrganizationApp;
use App\Entity\UsersOrganizations; use App\Entity\UsersOrganizations;
use App\Service\AwsService; use App\Service\AwsService;
use App\Tests\Functional\AbstractFunctional; use App\Tests\Functional\AbstractFunctional;
@ -348,10 +348,10 @@ class OrganizationController extends AbstractFunctional
self::assertCount(1, $this->entityManager->getRepository(Apps::class)->findAll()); self::assertCount(1, $this->entityManager->getRepository(Apps::class)->findAll());
self::assertCount(1, $this->entityManager->getRepository(Roles::class)->findAll()); self::assertCount(1, $this->entityManager->getRepository(Roles::class)->findAll());
self::assertCount(1, $this->entityManager->getRepository(UsersOrganizations::class)->findAll()); self::assertCount(1, $this->entityManager->getRepository(UsersOrganizations::class)->findAll());
self::assertCount(1, $this->entityManager->getRepository(UserOrganizatonApp::class)->findAll()); self::assertCount(1, $this->entityManager->getRepository(UserOrganizationApp::class)->findAll());
self::assertTrue($this->entityManager->getRepository(Organizations::class)->find($organization->getId())->isDeleted()); self::assertTrue($this->entityManager->getRepository(Organizations::class)->find($organization->getId())->isDeleted());
self::assertFalse($this->entityManager->getRepository(UsersOrganizations::class)->find($uoLink->getId())->isActive()); self::assertFalse($this->entityManager->getRepository(UsersOrganizations::class)->find($uoLink->getId())->isActive());
self::assertFalse($this->entityManager->getRepository(UserOrganizatonApp::class)->find($uoaLink->getId())->isActive()); self::assertFalse($this->entityManager->getRepository(UserOrganizationApp::class)->find($uoaLink->getId())->isActive());
self::assertSelectorNotExists('#tabulator-org'); self::assertSelectorNotExists('#tabulator-org');
} }

View File

@ -11,7 +11,7 @@ use App\Entity\Apps;
use App\Entity\Roles; use App\Entity\Roles;
use App\Entity\Organizations; use App\Entity\Organizations;
use App\Entity\UsersOrganizations; use App\Entity\UsersOrganizations;
use App\Entity\UserOrganizatonApp; use App\Entity\UserOrganizationApp;
use App\Tests\Functional\AbstractFunctional; use App\Tests\Functional\AbstractFunctional;
use Symfony\Component\HttpFoundation\File\UploadedFile; use Symfony\Component\HttpFoundation\File\UploadedFile;
use function Symfony\Component\DependencyInjection\Loader\Configurator\param; use function Symfony\Component\DependencyInjection\Loader\Configurator\param;
@ -542,7 +542,7 @@ class UserController extends AbstractFunctional
$this->client->followRedirect(); $this->client->followRedirect();
self::assertCount(2, $this->entityManager->getRepository(User::class)->findAll()); self::assertCount(2, $this->entityManager->getRepository(User::class)->findAll());
self::assertCount(1, $this->entityManager->getRepository(UsersOrganizations::class)->findAll()); self::assertCount(1, $this->entityManager->getRepository(UsersOrganizations::class)->findAll());
self::assertCount(1, $this->entityManager->getRepository(UserOrganizatonApp::class)->findAll()); self::assertCount(1, $this->entityManager->getRepository(UserOrganizationApp::class)->findAll());
} }
#[Test] #[Test]

View File

@ -7,7 +7,7 @@ use App\Entity\Notification;
use App\Entity\Organizations; use App\Entity\Organizations;
use App\Entity\Roles; use App\Entity\Roles;
use App\Entity\User; use App\Entity\User;
use App\Entity\UserOrganizatonApp; use App\Entity\UserOrganizationApp;
use App\Entity\UsersOrganizations; use App\Entity\UsersOrganizations;
use Doctrine\ORM\EntityManagerInterface; use Doctrine\ORM\EntityManagerInterface;
use Symfony\Bundle\FrameworkBundle\KernelBrowser; use Symfony\Bundle\FrameworkBundle\KernelBrowser;
@ -85,8 +85,8 @@ abstract class AbstractFunctional extends WebTestCase
return $uo; return $uo;
} }
protected function createUOALink(UsersOrganizations $uo, Apps $app, Roles $role): UserOrganizatonApp{ protected function createUOALink(UsersOrganizations $uo, Apps $app, Roles $role): UserOrganizationApp{
$uoa = new UserOrganizatonApp(); $uoa = new UserOrganizationApp();
$uoa->setUserOrganization($uo); $uoa->setUserOrganization($uo);
$uoa->setApplication($app); $uoa->setApplication($app);
$uoa->setRole($role); $uoa->setRole($role);

View File

@ -6,7 +6,7 @@ use App\Entity\Apps;
use App\Entity\Organizations; use App\Entity\Organizations;
use App\Entity\Roles; use App\Entity\Roles;
use App\Entity\User; use App\Entity\User;
use App\Entity\UserOrganizatonApp; use App\Entity\UserOrganizationApp;
use App\Entity\UsersOrganizations; use App\Entity\UsersOrganizations;
use App\Repository\UsersOrganizationsRepository; use App\Repository\UsersOrganizationsRepository;
use App\Service\AwsService; use App\Service\AwsService;
@ -186,7 +186,7 @@ class OrganizationsServiceTest extends TestCase
$adminRole->setName('ADMIN'); $adminRole->setName('ADMIN');
// 4. Setup UOA Logic (Proof that user is Admin of an App) // 4. Setup UOA Logic (Proof that user is Admin of an App)
$uoa = new UserOrganizatonApp(); $uoa = new UserOrganizationApp();
$this->setEntityId($uoa, 777); $this->setEntityId($uoa, 777);
$uoa->setUserOrganization($adminUO); $uoa->setUserOrganization($adminUO);
$uoa->setRole($adminRole); $uoa->setRole($adminRole);
@ -209,7 +209,7 @@ class OrganizationsServiceTest extends TestCase
$this->entityManager->method('getRepository')->willReturnMap([ $this->entityManager->method('getRepository')->willReturnMap([
[Roles::class, $rolesRepo], [Roles::class, $rolesRepo],
[UserOrganizatonApp::class, $uoaRepo], [UserOrganizationApp::class, $uoaRepo],
]); ]);
// 6. Expectations // 6. Expectations
@ -246,7 +246,7 @@ class OrganizationsServiceTest extends TestCase
$roleAdmin = new Roles(); $roleAdmin = new Roles();
$uoa = new UserOrganizatonApp(); // active admin link $uoa = new UserOrganizationApp(); // active admin link
// Mocks setup // Mocks setup
$rolesRepo = $this->createMock(EntityRepository::class); $rolesRepo = $this->createMock(EntityRepository::class);
@ -259,7 +259,7 @@ class OrganizationsServiceTest extends TestCase
$this->entityManager->method('getRepository')->willReturnMap([ $this->entityManager->method('getRepository')->willReturnMap([
[Roles::class, $rolesRepo], [Roles::class, $rolesRepo],
[UserOrganizatonApp::class, $uoaRepo], [UserOrganizationApp::class, $uoaRepo],
]); ]);
// Expectations: Notification service should NEVER be called // Expectations: Notification service should NEVER be called
@ -294,7 +294,7 @@ class OrganizationsServiceTest extends TestCase
$this->entityManager->method('getRepository')->willReturnMap([ $this->entityManager->method('getRepository')->willReturnMap([
[Roles::class, $rolesRepo], [Roles::class, $rolesRepo],
[UserOrganizatonApp::class, $uoaRepo], [UserOrganizationApp::class, $uoaRepo],
]); ]);
// 4. Expectations: ensure NOTHING happens // 4. Expectations: ensure NOTHING happens
@ -326,7 +326,7 @@ class OrganizationsServiceTest extends TestCase
$adminRole = new Roles(); $adminRole = new Roles();
$adminRole->setName('ADMIN'); $adminRole->setName('ADMIN');
$uoa = new UserOrganizatonApp(); $uoa = new UserOrganizationApp();
$uoa->setUserOrganization($adminUO); $uoa->setUserOrganization($adminUO);
$uoa->setRole($adminRole); $uoa->setRole($adminRole);
$uoa->setIsActive(true); $uoa->setIsActive(true);
@ -342,7 +342,7 @@ class OrganizationsServiceTest extends TestCase
$this->entityManager->method('getRepository')->willReturnMap([ $this->entityManager->method('getRepository')->willReturnMap([
[Roles::class, $rolesRepo], [Roles::class, $rolesRepo],
[UserOrganizatonApp::class, $uoaRepo], [UserOrganizationApp::class, $uoaRepo],
]); ]);
// 5. Dynamic Expectations // 5. Dynamic Expectations

View File

@ -6,7 +6,7 @@ use App\Entity\Apps;
use App\Entity\Organizations; use App\Entity\Organizations;
use App\Entity\Roles; use App\Entity\Roles;
use App\Entity\User; use App\Entity\User;
use App\Entity\UserOrganizatonApp; use App\Entity\UserOrganizationApp;
use App\Entity\UsersOrganizations; use App\Entity\UsersOrganizations;
use App\Service\ActionService; use App\Service\ActionService;
use App\Service\LoggerService; use App\Service\LoggerService;
@ -78,7 +78,7 @@ class UserOrganizationAppServiceTest extends TestCase
$uo = new UsersOrganizations(); $this->setEntityId($uo, 99); $uo = new UsersOrganizations(); $this->setEntityId($uo, 99);
$uoa = new UserOrganizatonApp(); $uoa = new UserOrganizationApp();
$this->setEntityId($uoa, 500); $this->setEntityId($uoa, 500);
$uoa->setApplication($app1); $uoa->setApplication($app1);
$uoa->setRole($role); $uoa->setRole($role);
@ -121,7 +121,7 @@ class UserOrganizationAppServiceTest extends TestCase
$role = new Roles(); $role = new Roles();
$this->setEntityId($role, 10); $this->setEntityId($role, 10);
$uoa = new UserOrganizatonApp(); $uoa = new UserOrganizationApp();
$this->setEntityId($uoa, 555); $this->setEntityId($uoa, 555);
$uoa->setApplication($app); $uoa->setApplication($app);
$uoa->setRole($role); $uoa->setRole($role);
@ -159,7 +159,7 @@ class UserOrganizationAppServiceTest extends TestCase
$app = new Apps(); $this->setEntityId($app, 1); $app = new Apps(); $this->setEntityId($app, 1);
$role = new Roles(); $this->setEntityId($role, 1); $role = new Roles(); $this->setEntityId($role, 1);
$realUoa = new UserOrganizatonApp(); $realUoa = new UserOrganizationApp();
$this->setEntityId($realUoa, 100); $this->setEntityId($realUoa, 100);
$realUoa->setApplication($app); $realUoa->setApplication($app);
$realUoa->setRole($role); $realUoa->setRole($role);
@ -209,12 +209,12 @@ class UserOrganizationAppServiceTest extends TestCase
$roleRepo->method('find')->with($roleId)->willReturn($role); $roleRepo->method('find')->with($roleId)->willReturn($role);
$this->entityManager->method('getRepository')->willReturnMap([ $this->entityManager->method('getRepository')->willReturnMap([
[UserOrganizatonApp::class, $uoaRepo], [UserOrganizationApp::class, $uoaRepo],
[Roles::class, $roleRepo], [Roles::class, $roleRepo],
]); ]);
// Expect creation // Expect creation
$this->entityManager->expects($this->once())->method('persist')->with($this->isInstanceOf(UserOrganizatonApp::class)); $this->entityManager->expects($this->once())->method('persist')->with($this->isInstanceOf(UserOrganizationApp::class));
$this->entityManager->expects($this->once())->method('flush'); $this->entityManager->expects($this->once())->method('flush');
$this->actionService->expects($this->once())->method('createAction'); $this->actionService->expects($this->once())->method('createAction');
@ -239,7 +239,7 @@ class UserOrganizationAppServiceTest extends TestCase
$role = new Roles(); $this->setEntityId($role, 30); $role = new Roles(); $this->setEntityId($role, 30);
$role->setName('VIEWER'); $role->setName('VIEWER');
$existingUoa = new UserOrganizatonApp(); $existingUoa = new UserOrganizationApp();
$this->setEntityId($existingUoa, 999); $this->setEntityId($existingUoa, 999);
$existingUoa->setRole($role); $existingUoa->setRole($role);
$existingUoa->setApplication($app); $existingUoa->setApplication($app);
@ -251,7 +251,7 @@ class UserOrganizationAppServiceTest extends TestCase
$uoaRepo->method('findBy')->willReturn([$existingUoa]); $uoaRepo->method('findBy')->willReturn([$existingUoa]);
$this->entityManager->method('getRepository')->willReturnMap([ $this->entityManager->method('getRepository')->willReturnMap([
[UserOrganizatonApp::class, $uoaRepo], [UserOrganizationApp::class, $uoaRepo],
]); ]);
// We pass empty array [] as selected roles -> expect deactivation // We pass empty array [] as selected roles -> expect deactivation
@ -296,7 +296,7 @@ class UserOrganizationAppServiceTest extends TestCase
$roleRepo->method('findOneBy')->with(['name' => 'ADMIN'])->willReturn($adminRole); $roleRepo->method('findOneBy')->with(['name' => 'ADMIN'])->willReturn($adminRole);
$this->entityManager->method('getRepository')->willReturnMap([ $this->entityManager->method('getRepository')->willReturnMap([
[UserOrganizatonApp::class, $uoaRepo], [UserOrganizationApp::class, $uoaRepo],
[Roles::class, $roleRepo], [Roles::class, $roleRepo],
]); ]);
@ -312,7 +312,7 @@ class UserOrganizationAppServiceTest extends TestCase
// - The new ADMIN link (automatically created) // - The new ADMIN link (automatically created)
$this->entityManager->expects($this->exactly(2)) $this->entityManager->expects($this->exactly(2))
->method('persist') ->method('persist')
->with($this->isInstanceOf(UserOrganizatonApp::class)); ->with($this->isInstanceOf(UserOrganizationApp::class));
// Run // Run
$this->service->syncRolesForUserOrganizationApp($uo, $app, ['100'], $actingUser); $this->service->syncRolesForUserOrganizationApp($uo, $app, ['100'], $actingUser);

View File

@ -5,7 +5,7 @@ namespace App\Tests\Service;
use App\Entity\Organizations; use App\Entity\Organizations;
use App\Entity\Roles; use App\Entity\Roles;
use App\Entity\User; use App\Entity\User;
use App\Entity\UserOrganizatonApp; use App\Entity\UserOrganizationApp;
use App\Entity\UsersOrganizations; use App\Entity\UsersOrganizations;
use App\Event\UserCreatedEvent; use App\Event\UserCreatedEvent;
use App\Service\ActionService; use App\Service\ActionService;
@ -328,7 +328,7 @@ class UserServiceTest extends TestCase
// 4. UserOrganizatonApp mock (The link checking if they are admin active) // 4. UserOrganizatonApp mock (The link checking if they are admin active)
$uoaRepo = $this->createMock(EntityRepository::class); $uoaRepo = $this->createMock(EntityRepository::class);
$uoa = new UserOrganizatonApp(); $uoa = new UserOrganizationApp();
$uoaRepo->method('findOneBy')->willReturn($uoa); // Returns an object, so true $uoaRepo->method('findOneBy')->willReturn($uoa); // Returns an object, so true
// Configure EntityManager to return these repos based on class // Configure EntityManager to return these repos based on class
@ -336,7 +336,7 @@ class UserServiceTest extends TestCase
[User::class, $userRepo], [User::class, $userRepo],
[UsersOrganizations::class, $uoRepo], [UsersOrganizations::class, $uoRepo],
[Roles::class, $rolesRepo], [Roles::class, $rolesRepo],
[UserOrganizatonApp::class, $uoaRepo], [UserOrganizationApp::class, $uoaRepo],
]); ]);
$result = $this->userService->isAdminOfOrganization($org); $result = $this->userService->isAdminOfOrganization($org);