فهرست منبع

changement pout app-v3 page parametre

Maha Bouchiba 2 سال پیش
والد
کامیت
1ea9c84682

+ 29 - 16
src/ApiResources/Access/AdminAccess.php

@@ -1,4 +1,5 @@
 <?php
+
 declare (strict_types=1);
 
 namespace App\ApiResources\Access;
@@ -11,67 +12,79 @@ use App\ApiResources\ApiResourcesInterface;
 use App\State\Processor\Access\AdminAccessProcessor;
 use App\State\Provider\Access\AdminAccessProvider;
 use JetBrains\PhpStorm\Pure;
+use Symfony\Component\Process\Process;
 use Symfony\Component\Validator\Constraints as Assert;
+
 /**
  * Classe resource qui contient les champs d'un compte admin
  */
 #[ApiResource(
     operations: [
         new Get(
-            uriTemplate: '/admin/{id}',
-            defaults: ['id' => 0],
-            provider: AdminAccessProvider::class
+            uriTemplate: '/admin-access/{id}',
+            defaults: ['id' => 0]
         ),
         new Put(
-            uriTemplate: '/admin/{id}',
+            uriTemplate: '/admin-access/{id}',
             defaults: ['id' => 0],
-            processor: AdminAccessProcessor::class
+            security: '(is_granted("ROLE_ADMIN_CORE") and object.getOrganizationId() == user.getOrganization().getId() )'
         )
-    ]
+        ],
+    provider: AdminAccessProvider::class,
+    processor : AdminAccessProcessor::class
 )]
 class AdminAccess implements ApiResourcesInterface
 {
     #[ApiProperty(identifier: true)]
     public ?int $id = null;
 
+
+    private int $organizationId;
+
     private ?string $username = null;
 
     #[Assert\Email(message: 'invalid-email-format', mode: 'strict')]
     private ?string $email = null;
 
-    #[Pure]
-    public function __construct()
+    public function getId(): ?int
     {
+        return $this->id;
     }
 
-    public function getId() : ?int
+    public function setId(?int $id): self
     {
-        return $this->id;
+        $this->id = $id;
+        return $this;
     }
 
-    public function setId(?int $id) : self
+    public function getOrganizationId(): ?int
     {
-        $this->id = $id;
+        return $this->organizationId;
+    }
+
+    public function setOrganizationId(?int $organizationId): self
+    {
+        $this->organizationId = $organizationId;
         return $this;
     }
 
-    public function getUsername() : ?string
+    public function getUsername(): ?string
     {
         return $this->username;
     }
 
-    public function setUsername(?string $username) : self
+    public function setUsername(?string $username): self
     {
         $this->username = $username;
         return $this;
     }
 
-    public function getEmail() : ?string
+    public function getEmail(): ?string
     {
         return $this->email;
     }
 
-    public function setEmail(?string $email) : self
+    public function setEmail(?string $email): self
     {
         $this->email = $email;
         return $this;

+ 9 - 7
src/Entity/Billing/AccessBilling.php

@@ -4,22 +4,24 @@ declare (strict_types=1);
 namespace App\Entity\Billing;
 
 use ApiPlatform\Metadata\Get;
-use ApiPlatform\Metadata\ApiResource;
+use ApiPlatform\Metadata\Put;
 use App\Entity\Access\Access;
 //use DH\Auditor\Provider\Doctrine\Auditing\Annotation\Auditable;
-use Doctrine\Common\Collections\ArrayCollection;
 use Doctrine\ORM\Mapping as ORM;
+use ApiPlatform\Metadata\ApiResource;
+use ApiPlatform\Metadata\GetCollection;
 use Doctrine\Common\Collections\Collection;
+use Doctrine\Common\Collections\ArrayCollection;
 
 /**
  * Classe ... qui ...
  */
 #[ApiResource(
-    operations: [
-        new Get(
-            security: 'is_granted(\'ROLE_ADMIN\') and object.getAccess().getOrganization().getId() == user.getOrganization().getId()'
-        )
-    ]
+  operations: [
+      new Get(
+          security: 'is_granted(\'ROLE_ADMIN\') and object.getAccess().getOrganization().getId() == user.getOrganization().getId()'
+      )
+  ]
 )]
 //#[Auditable]
 #[ORM\Entity]

+ 1 - 0
src/Entity/Billing/ResidenceArea.php

@@ -24,6 +24,7 @@ use Doctrine\Common\Collections\Collection;
     operations: [
         new Get(
             security: 'is_granted(\'ROLE_ORGANIZATION_VIEW\') and object.getBillingSetting().getOrganization().getId() == user.getOrganization().getId()'
+            
         ),
         new Put(
             security: 'object.getBillingSetting().getOrganization().getId() == user.getOrganization().getId()'

+ 16 - 0
src/Entity/Organization/Parameters.php

@@ -161,6 +161,10 @@ class Parameters
     #[ORM\Column(options: ['default' => false])]
     private bool $sendAttendanceSms = false;
 
+    #[ORM\Column(type: "boolean", options: ["default" => false])]
+    private bool $notifyAdministrationAbsence = false;
+
+
     #[Pure]
     public function __construct()
     {
@@ -575,4 +579,16 @@ class Parameters
         $this->sendAttendanceEmail = $sendAttendanceEmail;
         return $this;
     }
+
+    public function getNotifyAdministrationAbsence(): bool
+    {
+        return $this->notifyAdministrationAbsence;
+    }
+
+    public function setNotifyAdministrationAbsence(bool $notifyAdministrationAbsence): self
+    {
+        $this->notifyAdministrationAbsence = $notifyAdministrationAbsence;
+        return $this;
+    }
+
 }

+ 2 - 1
src/Service/Access/AdminAccessUtils.php

@@ -36,11 +36,12 @@ class AdminAccessUtils
         $contactPoint = $this->contactPointUtils->getPersonContactPointPrincipal($administrator);
         if(!$contactPoint) return null;
 
-        $adminAccess = new AdminAccess();
+        $adminAccess = new AdminAccess($organization->getId());
         $adminAccess
             ->setId($administrator->getId())
             ->setUsername($administrator->getPerson()->getUserIdentifier())
             ->setEmail($contactPoint->getEmail())
+            ->setOrganizationId($organization->getId())
         ;
         return $adminAccess;
     }

+ 2 - 1
src/State/Processor/Access/AdminAccessProcessor.php

@@ -53,6 +53,7 @@ class AdminAccessProcessor implements ProcessorInterface
         }
 
         $contactPoint->setEmail($data->getEmail());
+        $this->entityManager->persist($contactPoint);
         $this->entityManager->flush();
     }
-}
+}

+ 2 - 0
src/Validator/Organization/Parameters/MobytCredentialsValidator.php

@@ -12,6 +12,8 @@ use Symfony\Component\Validator\ConstraintValidator;
 /**
  * Classe control que les logins/mot de passe mobyt sont OK.
  */
+// NB : La validation de smsSenderName est faite 
+//      en annotation dans l'entité Parameters
 class MobytCredentialsValidator extends ConstraintValidator
 {
     public function __construct(private readonly MobytService $mobytService){}