Loading build-js.shdeleted 100644 → 0 +0 −0 Empty file deleted. module/Oscar/src/Oscar/Controller/AdministrationController.php +32 −15 Original line number Diff line number Diff line Loading @@ -1254,24 +1254,41 @@ class AdministrationController extends AbstractOscarController implements UsePro } if ($this->getHttpXMethod() == 'PUT') { // Contrôle du Role $roleId = trim($request->getPost('label')); if ($roleId == "") { return $this->getResponseBadRequest("Impossible d'enregistrer un rôle vide"); try { // Données du rôle à modifier $id = (int) $request->getPost('id'); $label = trim($request->getPost('label')); $description = trim($request->getPost('description')); $principal = $request->getPost('principal') == "true"; $this->getLoggerService()->info("Modification du rôle d'organization $label"); if( $label == "" ){ throw new OscarException("Vous devez renseigner un intitulé"); } $exist = $this->getEntityManager()->getRepository(OrganizationRole::class)->find($roleId); if ($exist) { return $this->getResponseBadRequest("Un rôle porte déja cette intitulé"); $roleObjEdited = $this->getOscarUserContextService()->getOrganizationRoleById($id, true); $exist = $this->getOscarUserContextService()->getOrganizationRoleByRoleId($label); if( $exist && $exist->getId() != $roleObjEdited->getId() ){ throw new OscarException("Un autre rôle d'organisation porte déjà cet intitulé : '$label'"); } $role->setLabel($request->getPost('label')) ->setDescription($request->getPost('description')) ->setPrincipal($request->getPost('principal') == 'true'); $this->getEntityManager()->persist($role); $roleObjEdited->setLabel($label) ->setDescription($description) ->setPrincipal($principal); $this->getEntityManager()->flush(); return $this->ajaxResponse($role->toArray()); return $this->ajaxResponse($roleObjEdited->toArray()); } catch (\Exception $e) { return $this->getResponseInternalError("Impossible de modifier le rôle : " . $e->getMessage()); } } //////////////////////////////////////////////////////////////////// // POST : Nouveau rôle elseif ($this->getHttpXMethod() == 'DELETE') { Loading module/Oscar/src/Oscar/Service/OscarUserContext.php +39 −0 Original line number Diff line number Diff line Loading @@ -24,6 +24,7 @@ use Oscar\Entity\Organization; use Oscar\Entity\OrganizationPerson; use Oscar\Entity\OrganizationRepository; use Oscar\Entity\OrganizationRole; use Oscar\Entity\OrganizationRoleRepository; use Oscar\Entity\Person; use Oscar\Entity\PersonRepository; use Oscar\Entity\Privilege; Loading Loading @@ -127,6 +128,36 @@ class OscarUserContext implements UseOscarConfigurationService, UseLoggerService } } /** * @param int $id * @param bool $throw * @return object|null * @throws OscarException */ public function getOrganizationRoleById( int $id, bool $throw = false) { $roleObj = $this->getOrganizationRoleRepository()->find($id); if( !$roleObj && $throw ){ throw new OscarException("Impossible de charger le rôle d'organisation '$id'"); } return $roleObj; } /** * @param string $roleId * @param bool $throw * @return OrganizationRole|null * @throws OscarException */ public function getOrganizationRoleByRoleId( string $roleId, bool $throw = false) { $roleObj = $this->getOrganizationRoleRepository()->findOneBy(['label' => $roleId]); if( !$roleObj && $throw ){ throw new OscarException("Impossible de charger le rôle d'organisation '$roleId'"); } return $roleObj; } /** * @return RoleRepository */ Loading @@ -135,6 +166,14 @@ class OscarUserContext implements UseOscarConfigurationService, UseLoggerService return $this->getEntityManager()->getRepository(Role::class); } /** * @return OrganizationRoleRepository */ public function getOrganizationRoleRepository(): OrganizationRoleRepository { return $this->getEntityManager()->getRepository(OrganizationRole::class); } /** * @return array */ Loading Loading
module/Oscar/src/Oscar/Controller/AdministrationController.php +32 −15 Original line number Diff line number Diff line Loading @@ -1254,24 +1254,41 @@ class AdministrationController extends AbstractOscarController implements UsePro } if ($this->getHttpXMethod() == 'PUT') { // Contrôle du Role $roleId = trim($request->getPost('label')); if ($roleId == "") { return $this->getResponseBadRequest("Impossible d'enregistrer un rôle vide"); try { // Données du rôle à modifier $id = (int) $request->getPost('id'); $label = trim($request->getPost('label')); $description = trim($request->getPost('description')); $principal = $request->getPost('principal') == "true"; $this->getLoggerService()->info("Modification du rôle d'organization $label"); if( $label == "" ){ throw new OscarException("Vous devez renseigner un intitulé"); } $exist = $this->getEntityManager()->getRepository(OrganizationRole::class)->find($roleId); if ($exist) { return $this->getResponseBadRequest("Un rôle porte déja cette intitulé"); $roleObjEdited = $this->getOscarUserContextService()->getOrganizationRoleById($id, true); $exist = $this->getOscarUserContextService()->getOrganizationRoleByRoleId($label); if( $exist && $exist->getId() != $roleObjEdited->getId() ){ throw new OscarException("Un autre rôle d'organisation porte déjà cet intitulé : '$label'"); } $role->setLabel($request->getPost('label')) ->setDescription($request->getPost('description')) ->setPrincipal($request->getPost('principal') == 'true'); $this->getEntityManager()->persist($role); $roleObjEdited->setLabel($label) ->setDescription($description) ->setPrincipal($principal); $this->getEntityManager()->flush(); return $this->ajaxResponse($role->toArray()); return $this->ajaxResponse($roleObjEdited->toArray()); } catch (\Exception $e) { return $this->getResponseInternalError("Impossible de modifier le rôle : " . $e->getMessage()); } } //////////////////////////////////////////////////////////////////// // POST : Nouveau rôle elseif ($this->getHttpXMethod() == 'DELETE') { Loading
module/Oscar/src/Oscar/Service/OscarUserContext.php +39 −0 Original line number Diff line number Diff line Loading @@ -24,6 +24,7 @@ use Oscar\Entity\Organization; use Oscar\Entity\OrganizationPerson; use Oscar\Entity\OrganizationRepository; use Oscar\Entity\OrganizationRole; use Oscar\Entity\OrganizationRoleRepository; use Oscar\Entity\Person; use Oscar\Entity\PersonRepository; use Oscar\Entity\Privilege; Loading Loading @@ -127,6 +128,36 @@ class OscarUserContext implements UseOscarConfigurationService, UseLoggerService } } /** * @param int $id * @param bool $throw * @return object|null * @throws OscarException */ public function getOrganizationRoleById( int $id, bool $throw = false) { $roleObj = $this->getOrganizationRoleRepository()->find($id); if( !$roleObj && $throw ){ throw new OscarException("Impossible de charger le rôle d'organisation '$id'"); } return $roleObj; } /** * @param string $roleId * @param bool $throw * @return OrganizationRole|null * @throws OscarException */ public function getOrganizationRoleByRoleId( string $roleId, bool $throw = false) { $roleObj = $this->getOrganizationRoleRepository()->findOneBy(['label' => $roleId]); if( !$roleObj && $throw ){ throw new OscarException("Impossible de charger le rôle d'organisation '$roleId'"); } return $roleObj; } /** * @return RoleRepository */ Loading @@ -135,6 +166,14 @@ class OscarUserContext implements UseOscarConfigurationService, UseLoggerService return $this->getEntityManager()->getRepository(Role::class); } /** * @return OrganizationRoleRepository */ public function getOrganizationRoleRepository(): OrganizationRoleRepository { return $this->getEntityManager()->getRepository(OrganizationRole::class); } /** * @return array */ Loading