Loading src/UnicaenZimbra/Processus/ZimbraBoiteGeneriqueProcessus.php +80 −122 Original line number Diff line number Diff line Loading @@ -3,17 +3,16 @@ namespace UnicaenZimbra\Processus; use UnicaenZimbra\Entity\Account; use UnicaenZimbra\Entity\Identity; use UnicaenZimbra\Entity\Grant; use UnicaenZimbra\Entity\Right; use UnicaenZimbra\Entity\Filter\Action\FileInto as FilterActionFileInto; use UnicaenZimbra\Entity\Filter\Action\Keep as FilterActionKeep; use UnicaenZimbra\Entity\Filter\Filter; use UnicaenZimbra\Entity\Filter\Test\Address as FilterTestAddress; use UnicaenZimbra\Entity\Filter\Test\Header as FilterTestHeader; use UnicaenZimbra\Entity\Filter\Action\FileInto as FilterActionFileInto; use UnicaenZimbra\Entity\Filter\Action\Keep as FilterActionKeep; use UnicaenZimbra\Entity\Grant; use UnicaenZimbra\Entity\Identity; use UnicaenZimbra\Entity\Right; use UnicaenZimbra\Options\ModuleOptions; use UnicaenZimbra\Service\ZimbraFolderService; use UnicaenZimbra\Service\ZimbraGalService; class ZimbraBoiteGeneriqueProcessus extends AbstractProcessus { Loading Loading @@ -52,15 +51,13 @@ class ZimbraBoiteGeneriqueProcessus extends AbstractProcessus */ public function create($mail, $password, $name, $description) { $accountService = $this->getZimbraAccountService(); $cosService = $this->getZimbraCosService(); $account = new Account; $account->name = $mail; $account->description = $description; $account->zimbraCOSId = $this->getOptions()->getBoiteGeneriqueCosId(); $accountService->create($account, $password); $accountService->addAlias($account, $name . substr($mail, strpos($mail, '@'))); $this->accountService->create($account, $password); $this->accountService->addAlias($account, $name . substr($mail, strpos($mail, '@'))); return $this; } Loading @@ -73,8 +70,8 @@ class ZimbraBoiteGeneriqueProcessus extends AbstractProcessus */ public function rename($mail, $newName) { $accountService = $this->getZimbraAccountService(); $accountService->rename($accountService->get($mail), $newName); $this->accountService->rename($this->accountService->get($mail), $newName); return $this; } Loading @@ -86,8 +83,8 @@ class ZimbraBoiteGeneriqueProcessus extends AbstractProcessus */ public function delete($mail) { $accountService = $this->getZimbraAccountService(); $accountService->delete($accountService->get($mail)); $this->accountService->delete($this->accountService->get($mail)); return $this; } Loading @@ -102,27 +99,21 @@ class ZimbraBoiteGeneriqueProcessus extends AbstractProcessus { $afName = $this->getMailName($adresseFonctionnelle); // Récupération des services $accountService = $this->getZimbraAccountService(); $distribListService = $this->getZimbraDistributionListService(); $folderService = $this->getZimbraFolderService(); $filterService = $this->getZimbraFilterService(); // Travail sur la boite générique $bg = $accountService->get($mail); $folderService->setAccount($bg); $filterService->setAccount($bg); $bg = $this->accountService->get($mail); $this->folderService->setAccount($bg); $this->filterService->setAccount($bg); // Liste de distribution $distribList = $distribListService->create($adresseFonctionnelle); $distribList = $this->distributionListService->create($adresseFonctionnelle); usleep(self::ZIMBRA_TEMPORISATION); // temporisation nécessaire pour Zimbra // Ajout des membres à la liste $distribListService->addMembers($distribList, $mail); $this->distributionListService->addMembers($distribList, $mail); // Répertoires $inputFolder = $folderService->create($afName . ' | Réception'); $sentFolder = $folderService->create($afName . ' | Envoi'); $inputFolder = $this->folderService->create($afName . ' | Réception'); $sentFolder = $this->folderService->create($afName . ' | Envoi'); // Filtre de réception $filter = new Filter; Loading @@ -147,7 +138,7 @@ class ZimbraBoiteGeneriqueProcessus extends AbstractProcessus $action->setFolderPath($inputFolder->absFolderPath); $filter->addAction($action); $filter->addAction(new FilterActionKeep); $filterService->createInput($filter); $this->filterService->createInput($filter); return $this; } Loading @@ -165,33 +156,27 @@ class ZimbraBoiteGeneriqueProcessus extends AbstractProcessus $afName = $this->getMailName($adresseFonctionnelle); $afNewName = $this->getMailName($newName); // récupération des services $accountService = $this->getZimbraAccountService(); $distribListService = $this->getZimbraDistributionListService(); $folderService = $this->getZimbraFolderService(); $filterService = $this->getZimbraFilterService(); // Travail sur la boite générique $bg = $accountService->get($mail); $folderService->setAccount($bg); $filterService->setAccount($bg); $bg = $this->accountService->get($mail); $this->folderService->setAccount($bg); $this->filterService->setAccount($bg); // Liste de distribution // la suppression de la liste de distribution permet de supprimer les droits (ACE) sur celle-ci $distribListService->delete($distribListService->get($adresseFonctionnelle)); $distribList = $distribListService->create($newName); $this->distributionListService->delete($this->distributionListService->get($adresseFonctionnelle)); $distribList = $this->distributionListService->create($newName); usleep(self::ZIMBRA_TEMPORISATION); // temporisation nécessaire pour Zimbra // Ajout des membres à la liste $distribListService->addMembers($distribList, $mail); $this->distributionListService->addMembers($distribList, $mail); // Répertoires $inputFolder = $folderService->rename($folderService->get($afName . ' | Réception'), $afNewName . ' | Réception'); $sentFolder = $folderService->rename($folderService->get($afName . ' | Envoi'), $afNewName . ' | Envoi'); $inputFolder = $this->folderService->rename($this->folderService->get($afName . ' | Réception'), $afNewName . ' | Réception'); $sentFolder = $this->folderService->rename($this->folderService->get($afName . ' | Envoi'), $afNewName . ' | Envoi'); // Filtre entrant $filter = new Filter; // $filter = $filterService->getInput()[$afName.' | Réception']; // $filter = $this->filterService->getInput()[$afName.' | Réception']; $filter->setName($afNewName . ' | Réception') ->setCondition($filter::CONDITION_ANYOF); $test1 = new FilterTestAddress(); Loading @@ -213,8 +198,8 @@ class ZimbraBoiteGeneriqueProcessus extends AbstractProcessus $filter->addAction($action); $filter->addAction(new FilterActionKeep); $filterService->deleteInput($afName . ' | Réception'); $filterService->createInput($filter); $this->filterService->deleteInput($afName . ' | Réception'); $this->filterService->createInput($filter); return $this; } Loading @@ -230,26 +215,20 @@ class ZimbraBoiteGeneriqueProcessus extends AbstractProcessus { $afName = $this->getMailName($adresseFonctionnelle); // récupération des services $accountService = $this->getZimbraAccountService(); $distribListService = $this->getZimbraDistributionListService(); $folderService = $this->getZimbraFolderService(); $filterService = $this->getZimbraFilterService(); // Travail sur la boite générique $bg = $accountService->get($mail); $folderService->setAccount($bg); $filterService->setAccount($bg); $bg = $this->accountService->get($mail); $this->folderService->setAccount($bg); $this->filterService->setAccount($bg); // Liste de distribution $distribListService->delete($distribListService->get($adresseFonctionnelle)); $this->distributionListService->delete($this->distributionListService->get($adresseFonctionnelle)); // Répertoires $folderService->delete($folderService->get($afName . ' | Réception')); $folderService->delete($folderService->get($afName . ' | Envoi')); $this->folderService->delete($this->folderService->get($afName . ' | Réception')); $this->folderService->delete($this->folderService->get($afName . ' | Envoi')); // Filtres $filterService->deleteInput($afName . ' | Réception'); $this->filterService->deleteInput($afName . ' | Réception'); return $this; } Loading @@ -263,12 +242,10 @@ class ZimbraBoiteGeneriqueProcessus extends AbstractProcessus */ public function getGrantsOfAdresseFonctionnelle($adresseFonctionnelle) { $distribListService = $this->getZimbraDistributionListService(); $rightService = $this->getZimbraRightService(); $ace = new Right; $ace->setTarget($distribListService->get($adresseFonctionnelle)); return $rightService->getGrants($ace); $ace->setTarget($this->distributionListService->get($adresseFonctionnelle)); return $this->rightService->getGrants($ace); } /** Loading @@ -282,15 +259,8 @@ class ZimbraBoiteGeneriqueProcessus extends AbstractProcessus { $afName = $this->getMailName($adresseFonctionnelle); $distribListService = $this->getZimbraDistributionListService(); $accountService = $this->getZimbraAccountService(); $folderService = $this->getZimbraFolderService(); $filterService = $this->getZimbraFilterService(); $rightService = $this->getZimbraRightService(); $identityService = $this->getZimbraIdentityService(); // Travail sur la boite générique $dlAccount = $distribListService->get($adresseFonctionnelle); $dlAccount = $this->distributionListService->get($adresseFonctionnelle); foreach($dlAccount->members as $member) { if(preg_match('/bg-.*/', $member)) { $bgAccount = $member; Loading @@ -299,26 +269,26 @@ class ZimbraBoiteGeneriqueProcessus extends AbstractProcessus } $bgAccount = $bgAccount ?: $dlAccount->members[0]; $userAccount = $accountService->get($userMail); $folderService->setAccount($bgAccount); $userAccount = $this->accountService->get($userMail); $this->folderService->setAccount($bgAccount); // Partages $inputFolder = $folderService->get($afName . ' | Réception'); $sentFolder = $folderService->get($afName . ' | Envoi'); $inputFolder = $this->folderService->get($afName . ' | Réception'); $sentFolder = $this->folderService->get($afName . ' | Envoi'); $grant = new Grant; $grant->setGrantee($userAccount); $grant->perm = Grant::PERM_MANAGE; $folderService->addGrant($inputFolder, $grant, ZimbraFolderService::GRANT_ACTION_NONE) $this->folderService->addGrant($inputFolder, $grant, ZimbraFolderService::GRANT_ACTION_NONE) ->createMountPoint($inputFolder, $userAccount, $inputFolder->absFolderPath) ->addGrant($sentFolder, $grant, ZimbraFolderService::GRANT_ACTION_NONE) ->createMountPoint($sentFolder, $userAccount, $sentFolder->absFolderPath); // Travail sur la boite utilisateur $filterService->setAccount($userAccount); $identityService->setAccount($userAccount); $folderService->setAccount($userAccount); $this->filterService->setAccount($userAccount); $this->identityService->setAccount($userAccount); $this->folderService->setAccount($userAccount); // Filtre d'envoi $filter = new Filter; Loading @@ -335,14 +305,14 @@ class ZimbraBoiteGeneriqueProcessus extends AbstractProcessus $action = new FilterActionFileInto; $action->setFolderPath($sentFolder->absFolderPath); $filter->addAction($action); $filterService->createOutput($filter); $this->filterService->createOutput($filter); // ACE $ace = new Right; $ace->setTarget($dlAccount) ->setGrantee($userAccount) ->setRightByRightName('sendAsDistList'); $rightService->grantRight($ace); $this->rightService->grantRight($ace); // Avatar $identity = new Identity; Loading @@ -350,13 +320,13 @@ class ZimbraBoiteGeneriqueProcessus extends AbstractProcessus $identity->zimbraPrefFromAddress = $adresseFonctionnelle; $identity->zimbraPrefFromAddressType = 'sendAs'; $identity->zimbraPrefFromDisplay = $afName; $identity->zimbraPrefWhenInFolderIds = $folderService->get($afName . ' | Réception')->getId(); $identity->zimbraPrefWhenInFolderIds = $this->folderService->get($afName . ' | Réception')->getId(); $identity->zimbraPrefWhenInFoldersEnabled = true; $identity->zimbraPrefReplyToAddress = $adresseFonctionnelle; $identity->zimbraPrefReplyToEnabled = true; $identity->zimbraPrefWhenSentToAddresses = $adresseFonctionnelle; $identity->zimbraPrefWhenSentToEnabled = true; $identityService->create($identity); $this->identityService->create($identity); return $this; } Loading @@ -372,47 +342,42 @@ class ZimbraBoiteGeneriqueProcessus extends AbstractProcessus { $afName = $this->getMailName($adresseFonctionnelle); $distribListService = $this->getZimbraDistributionListService(); $accountService = $this->getZimbraAccountService(); $folderService = $this->getZimbraFolderService(); $filterService = $this->getZimbraFilterService(); $rightService = $this->getZimbraRightService(); $identityService = $this->getZimbraIdentityService(); // Travail sur la boite générique $dlAccount = $distribListService->get($adresseFonctionnelle); $dlAccount = $this->distributionListService->get($adresseFonctionnelle); foreach($dlAccount->members as $member) { if(preg_match('/bg-.*/', $member)) { $bgAccount = $member; break; } } $userAccount = $accountService->get($userMail); $folderService->setAccount($bgAccount); $userAccount = $athis->ccountService->get($userMail); $this->folderService->setAccount($bgAccount); // Suppression des partages $inputFolder = $folderService->get($afName . ' | Réception'); $sentFolder = $folderService->get($afName . ' | Envoi'); $inputFolder = $this->folderService->get($afName . ' | Réception'); $sentFolder = $this->folderService->get($afName . ' | Envoi'); $folderService->revokeGrant($inputFolder, $userAccount) $this->folderService ->revokeGrant($inputFolder, $userAccount) ->revokeGrant($sentFolder, $userAccount); // Travail sur la boite utilisateur $filterService->setAccount($userAccount); $identityService->setAccount($userAccount); $this->filterService->setAccount($userAccount); $this->identityService->setAccount($userAccount); // Filtres $filterService->deleteOutput($afName . ' | Envoi'); $this->filterService->deleteOutput($afName . ' | Envoi'); // ACE $ace = new Right; $ace->setTarget($dlAccount) ->setGrantee($userAccount) ->setRightByRightName('sendAsDistList'); $rightService->revokeRight($ace); $this->rightService->revokeRight($ace); // Avatar $identityService->delete($identityService->get($afName)); $this->identityService->delete($this->identityService->get($afName)); return $this; } Loading @@ -429,26 +394,19 @@ class ZimbraBoiteGeneriqueProcessus extends AbstractProcessus $afName = $this->getMailName($adresseFonctionnelle); $afNewName = $this->getMailName($newName); $distribListService = $this->getZimbraDistributionListService(); $accountService = $this->getZimbraAccountService(); $folderService = $this->getZimbraFolderService(); $filterService = $this->getZimbraFilterService(); $rightService = $this->getZimbraRightService(); $identityService = $this->getZimbraIdentityService(); // Travail sur la boite utilisateur $userAccount = $accountService->get($userMail); $folderService->setAccount($userAccount); $filterService->setAccount($userAccount); $identityService->setAccount($userAccount); $userAccount = $this->accountService->get($userMail); $this->folderService->setAccount($userAccount); $this->filterService->setAccount($userAccount); $this->identityService->setAccount($userAccount); // Répertoires $inputFolder = $folderService->rename($inputFolder = $folderService->get($afName . ' | Réception'), $afNewName . ' | Réception'); $sentFolder = $folderService->rename($sentFolder = $folderService->get($afName . ' | Envoi'), $afNewName . ' | Envoi'); $inputFolder = $this->folderService->rename($inputFolder = $this->folderService->get($afName . ' | Réception'), $afNewName . ' | Réception'); $sentFolder = $this->folderService->rename($sentFolder = $this->folderService->get($afName . ' | Envoi'), $afNewName . ' | Envoi'); // Filtre sortant $filter = new Filter; // $filter = $filterService->getOutput()[$afName.' | Envoi']; // $filter = $this->filterService->getOutput()[$afName.' | Envoi']; $filter->setName($afNewName . ' | Envoi'); $test = new FilterTestAddress(); $test->setHeader('from')->setStringComparison('contains')->setPart('all') Loading @@ -459,18 +417,18 @@ class ZimbraBoiteGeneriqueProcessus extends AbstractProcessus $action->setFolderPath($afNewName . ' | Envoi'); $filter->addAction($action); $filterService->deleteOutput($afName . ' | Envoi'); $filterService->createOutput($filter); $this->filterService->deleteOutput($afName . ' | Envoi'); $this->filterService->createOutput($filter); // ACE $newAce = new Right(); $newAce->setTarget($distribListService->get($newName)) $newAce->setTarget($this->distributionListService->get($newName)) ->setGrantee($userAccount) ->setRightByRightName('sendAsDistList'); $rightService->grantRight($newAce); $this->rightService->grantRight($newAce); // Avatar $identityService->delete($identityService->get($afName)); // suppression ancienne identité $this->identityService->delete($this->identityService->get($afName)); // suppression ancienne identité $identity = new Identity(); $identity->setName($afNewName); $identity->zimbraPrefFromAddress = $newName; Loading @@ -482,7 +440,7 @@ class ZimbraBoiteGeneriqueProcessus extends AbstractProcessus $identity->zimbraPrefReplyToEnabled = true; $identity->zimbraPrefWhenSentToAddresses = $newName; $identity->zimbraPrefWhenSentToEnabled = true; $identityService->create($identity); $this->identityService->create($identity); return $this; } Loading Loading
src/UnicaenZimbra/Processus/ZimbraBoiteGeneriqueProcessus.php +80 −122 Original line number Diff line number Diff line Loading @@ -3,17 +3,16 @@ namespace UnicaenZimbra\Processus; use UnicaenZimbra\Entity\Account; use UnicaenZimbra\Entity\Identity; use UnicaenZimbra\Entity\Grant; use UnicaenZimbra\Entity\Right; use UnicaenZimbra\Entity\Filter\Action\FileInto as FilterActionFileInto; use UnicaenZimbra\Entity\Filter\Action\Keep as FilterActionKeep; use UnicaenZimbra\Entity\Filter\Filter; use UnicaenZimbra\Entity\Filter\Test\Address as FilterTestAddress; use UnicaenZimbra\Entity\Filter\Test\Header as FilterTestHeader; use UnicaenZimbra\Entity\Filter\Action\FileInto as FilterActionFileInto; use UnicaenZimbra\Entity\Filter\Action\Keep as FilterActionKeep; use UnicaenZimbra\Entity\Grant; use UnicaenZimbra\Entity\Identity; use UnicaenZimbra\Entity\Right; use UnicaenZimbra\Options\ModuleOptions; use UnicaenZimbra\Service\ZimbraFolderService; use UnicaenZimbra\Service\ZimbraGalService; class ZimbraBoiteGeneriqueProcessus extends AbstractProcessus { Loading Loading @@ -52,15 +51,13 @@ class ZimbraBoiteGeneriqueProcessus extends AbstractProcessus */ public function create($mail, $password, $name, $description) { $accountService = $this->getZimbraAccountService(); $cosService = $this->getZimbraCosService(); $account = new Account; $account->name = $mail; $account->description = $description; $account->zimbraCOSId = $this->getOptions()->getBoiteGeneriqueCosId(); $accountService->create($account, $password); $accountService->addAlias($account, $name . substr($mail, strpos($mail, '@'))); $this->accountService->create($account, $password); $this->accountService->addAlias($account, $name . substr($mail, strpos($mail, '@'))); return $this; } Loading @@ -73,8 +70,8 @@ class ZimbraBoiteGeneriqueProcessus extends AbstractProcessus */ public function rename($mail, $newName) { $accountService = $this->getZimbraAccountService(); $accountService->rename($accountService->get($mail), $newName); $this->accountService->rename($this->accountService->get($mail), $newName); return $this; } Loading @@ -86,8 +83,8 @@ class ZimbraBoiteGeneriqueProcessus extends AbstractProcessus */ public function delete($mail) { $accountService = $this->getZimbraAccountService(); $accountService->delete($accountService->get($mail)); $this->accountService->delete($this->accountService->get($mail)); return $this; } Loading @@ -102,27 +99,21 @@ class ZimbraBoiteGeneriqueProcessus extends AbstractProcessus { $afName = $this->getMailName($adresseFonctionnelle); // Récupération des services $accountService = $this->getZimbraAccountService(); $distribListService = $this->getZimbraDistributionListService(); $folderService = $this->getZimbraFolderService(); $filterService = $this->getZimbraFilterService(); // Travail sur la boite générique $bg = $accountService->get($mail); $folderService->setAccount($bg); $filterService->setAccount($bg); $bg = $this->accountService->get($mail); $this->folderService->setAccount($bg); $this->filterService->setAccount($bg); // Liste de distribution $distribList = $distribListService->create($adresseFonctionnelle); $distribList = $this->distributionListService->create($adresseFonctionnelle); usleep(self::ZIMBRA_TEMPORISATION); // temporisation nécessaire pour Zimbra // Ajout des membres à la liste $distribListService->addMembers($distribList, $mail); $this->distributionListService->addMembers($distribList, $mail); // Répertoires $inputFolder = $folderService->create($afName . ' | Réception'); $sentFolder = $folderService->create($afName . ' | Envoi'); $inputFolder = $this->folderService->create($afName . ' | Réception'); $sentFolder = $this->folderService->create($afName . ' | Envoi'); // Filtre de réception $filter = new Filter; Loading @@ -147,7 +138,7 @@ class ZimbraBoiteGeneriqueProcessus extends AbstractProcessus $action->setFolderPath($inputFolder->absFolderPath); $filter->addAction($action); $filter->addAction(new FilterActionKeep); $filterService->createInput($filter); $this->filterService->createInput($filter); return $this; } Loading @@ -165,33 +156,27 @@ class ZimbraBoiteGeneriqueProcessus extends AbstractProcessus $afName = $this->getMailName($adresseFonctionnelle); $afNewName = $this->getMailName($newName); // récupération des services $accountService = $this->getZimbraAccountService(); $distribListService = $this->getZimbraDistributionListService(); $folderService = $this->getZimbraFolderService(); $filterService = $this->getZimbraFilterService(); // Travail sur la boite générique $bg = $accountService->get($mail); $folderService->setAccount($bg); $filterService->setAccount($bg); $bg = $this->accountService->get($mail); $this->folderService->setAccount($bg); $this->filterService->setAccount($bg); // Liste de distribution // la suppression de la liste de distribution permet de supprimer les droits (ACE) sur celle-ci $distribListService->delete($distribListService->get($adresseFonctionnelle)); $distribList = $distribListService->create($newName); $this->distributionListService->delete($this->distributionListService->get($adresseFonctionnelle)); $distribList = $this->distributionListService->create($newName); usleep(self::ZIMBRA_TEMPORISATION); // temporisation nécessaire pour Zimbra // Ajout des membres à la liste $distribListService->addMembers($distribList, $mail); $this->distributionListService->addMembers($distribList, $mail); // Répertoires $inputFolder = $folderService->rename($folderService->get($afName . ' | Réception'), $afNewName . ' | Réception'); $sentFolder = $folderService->rename($folderService->get($afName . ' | Envoi'), $afNewName . ' | Envoi'); $inputFolder = $this->folderService->rename($this->folderService->get($afName . ' | Réception'), $afNewName . ' | Réception'); $sentFolder = $this->folderService->rename($this->folderService->get($afName . ' | Envoi'), $afNewName . ' | Envoi'); // Filtre entrant $filter = new Filter; // $filter = $filterService->getInput()[$afName.' | Réception']; // $filter = $this->filterService->getInput()[$afName.' | Réception']; $filter->setName($afNewName . ' | Réception') ->setCondition($filter::CONDITION_ANYOF); $test1 = new FilterTestAddress(); Loading @@ -213,8 +198,8 @@ class ZimbraBoiteGeneriqueProcessus extends AbstractProcessus $filter->addAction($action); $filter->addAction(new FilterActionKeep); $filterService->deleteInput($afName . ' | Réception'); $filterService->createInput($filter); $this->filterService->deleteInput($afName . ' | Réception'); $this->filterService->createInput($filter); return $this; } Loading @@ -230,26 +215,20 @@ class ZimbraBoiteGeneriqueProcessus extends AbstractProcessus { $afName = $this->getMailName($adresseFonctionnelle); // récupération des services $accountService = $this->getZimbraAccountService(); $distribListService = $this->getZimbraDistributionListService(); $folderService = $this->getZimbraFolderService(); $filterService = $this->getZimbraFilterService(); // Travail sur la boite générique $bg = $accountService->get($mail); $folderService->setAccount($bg); $filterService->setAccount($bg); $bg = $this->accountService->get($mail); $this->folderService->setAccount($bg); $this->filterService->setAccount($bg); // Liste de distribution $distribListService->delete($distribListService->get($adresseFonctionnelle)); $this->distributionListService->delete($this->distributionListService->get($adresseFonctionnelle)); // Répertoires $folderService->delete($folderService->get($afName . ' | Réception')); $folderService->delete($folderService->get($afName . ' | Envoi')); $this->folderService->delete($this->folderService->get($afName . ' | Réception')); $this->folderService->delete($this->folderService->get($afName . ' | Envoi')); // Filtres $filterService->deleteInput($afName . ' | Réception'); $this->filterService->deleteInput($afName . ' | Réception'); return $this; } Loading @@ -263,12 +242,10 @@ class ZimbraBoiteGeneriqueProcessus extends AbstractProcessus */ public function getGrantsOfAdresseFonctionnelle($adresseFonctionnelle) { $distribListService = $this->getZimbraDistributionListService(); $rightService = $this->getZimbraRightService(); $ace = new Right; $ace->setTarget($distribListService->get($adresseFonctionnelle)); return $rightService->getGrants($ace); $ace->setTarget($this->distributionListService->get($adresseFonctionnelle)); return $this->rightService->getGrants($ace); } /** Loading @@ -282,15 +259,8 @@ class ZimbraBoiteGeneriqueProcessus extends AbstractProcessus { $afName = $this->getMailName($adresseFonctionnelle); $distribListService = $this->getZimbraDistributionListService(); $accountService = $this->getZimbraAccountService(); $folderService = $this->getZimbraFolderService(); $filterService = $this->getZimbraFilterService(); $rightService = $this->getZimbraRightService(); $identityService = $this->getZimbraIdentityService(); // Travail sur la boite générique $dlAccount = $distribListService->get($adresseFonctionnelle); $dlAccount = $this->distributionListService->get($adresseFonctionnelle); foreach($dlAccount->members as $member) { if(preg_match('/bg-.*/', $member)) { $bgAccount = $member; Loading @@ -299,26 +269,26 @@ class ZimbraBoiteGeneriqueProcessus extends AbstractProcessus } $bgAccount = $bgAccount ?: $dlAccount->members[0]; $userAccount = $accountService->get($userMail); $folderService->setAccount($bgAccount); $userAccount = $this->accountService->get($userMail); $this->folderService->setAccount($bgAccount); // Partages $inputFolder = $folderService->get($afName . ' | Réception'); $sentFolder = $folderService->get($afName . ' | Envoi'); $inputFolder = $this->folderService->get($afName . ' | Réception'); $sentFolder = $this->folderService->get($afName . ' | Envoi'); $grant = new Grant; $grant->setGrantee($userAccount); $grant->perm = Grant::PERM_MANAGE; $folderService->addGrant($inputFolder, $grant, ZimbraFolderService::GRANT_ACTION_NONE) $this->folderService->addGrant($inputFolder, $grant, ZimbraFolderService::GRANT_ACTION_NONE) ->createMountPoint($inputFolder, $userAccount, $inputFolder->absFolderPath) ->addGrant($sentFolder, $grant, ZimbraFolderService::GRANT_ACTION_NONE) ->createMountPoint($sentFolder, $userAccount, $sentFolder->absFolderPath); // Travail sur la boite utilisateur $filterService->setAccount($userAccount); $identityService->setAccount($userAccount); $folderService->setAccount($userAccount); $this->filterService->setAccount($userAccount); $this->identityService->setAccount($userAccount); $this->folderService->setAccount($userAccount); // Filtre d'envoi $filter = new Filter; Loading @@ -335,14 +305,14 @@ class ZimbraBoiteGeneriqueProcessus extends AbstractProcessus $action = new FilterActionFileInto; $action->setFolderPath($sentFolder->absFolderPath); $filter->addAction($action); $filterService->createOutput($filter); $this->filterService->createOutput($filter); // ACE $ace = new Right; $ace->setTarget($dlAccount) ->setGrantee($userAccount) ->setRightByRightName('sendAsDistList'); $rightService->grantRight($ace); $this->rightService->grantRight($ace); // Avatar $identity = new Identity; Loading @@ -350,13 +320,13 @@ class ZimbraBoiteGeneriqueProcessus extends AbstractProcessus $identity->zimbraPrefFromAddress = $adresseFonctionnelle; $identity->zimbraPrefFromAddressType = 'sendAs'; $identity->zimbraPrefFromDisplay = $afName; $identity->zimbraPrefWhenInFolderIds = $folderService->get($afName . ' | Réception')->getId(); $identity->zimbraPrefWhenInFolderIds = $this->folderService->get($afName . ' | Réception')->getId(); $identity->zimbraPrefWhenInFoldersEnabled = true; $identity->zimbraPrefReplyToAddress = $adresseFonctionnelle; $identity->zimbraPrefReplyToEnabled = true; $identity->zimbraPrefWhenSentToAddresses = $adresseFonctionnelle; $identity->zimbraPrefWhenSentToEnabled = true; $identityService->create($identity); $this->identityService->create($identity); return $this; } Loading @@ -372,47 +342,42 @@ class ZimbraBoiteGeneriqueProcessus extends AbstractProcessus { $afName = $this->getMailName($adresseFonctionnelle); $distribListService = $this->getZimbraDistributionListService(); $accountService = $this->getZimbraAccountService(); $folderService = $this->getZimbraFolderService(); $filterService = $this->getZimbraFilterService(); $rightService = $this->getZimbraRightService(); $identityService = $this->getZimbraIdentityService(); // Travail sur la boite générique $dlAccount = $distribListService->get($adresseFonctionnelle); $dlAccount = $this->distributionListService->get($adresseFonctionnelle); foreach($dlAccount->members as $member) { if(preg_match('/bg-.*/', $member)) { $bgAccount = $member; break; } } $userAccount = $accountService->get($userMail); $folderService->setAccount($bgAccount); $userAccount = $athis->ccountService->get($userMail); $this->folderService->setAccount($bgAccount); // Suppression des partages $inputFolder = $folderService->get($afName . ' | Réception'); $sentFolder = $folderService->get($afName . ' | Envoi'); $inputFolder = $this->folderService->get($afName . ' | Réception'); $sentFolder = $this->folderService->get($afName . ' | Envoi'); $folderService->revokeGrant($inputFolder, $userAccount) $this->folderService ->revokeGrant($inputFolder, $userAccount) ->revokeGrant($sentFolder, $userAccount); // Travail sur la boite utilisateur $filterService->setAccount($userAccount); $identityService->setAccount($userAccount); $this->filterService->setAccount($userAccount); $this->identityService->setAccount($userAccount); // Filtres $filterService->deleteOutput($afName . ' | Envoi'); $this->filterService->deleteOutput($afName . ' | Envoi'); // ACE $ace = new Right; $ace->setTarget($dlAccount) ->setGrantee($userAccount) ->setRightByRightName('sendAsDistList'); $rightService->revokeRight($ace); $this->rightService->revokeRight($ace); // Avatar $identityService->delete($identityService->get($afName)); $this->identityService->delete($this->identityService->get($afName)); return $this; } Loading @@ -429,26 +394,19 @@ class ZimbraBoiteGeneriqueProcessus extends AbstractProcessus $afName = $this->getMailName($adresseFonctionnelle); $afNewName = $this->getMailName($newName); $distribListService = $this->getZimbraDistributionListService(); $accountService = $this->getZimbraAccountService(); $folderService = $this->getZimbraFolderService(); $filterService = $this->getZimbraFilterService(); $rightService = $this->getZimbraRightService(); $identityService = $this->getZimbraIdentityService(); // Travail sur la boite utilisateur $userAccount = $accountService->get($userMail); $folderService->setAccount($userAccount); $filterService->setAccount($userAccount); $identityService->setAccount($userAccount); $userAccount = $this->accountService->get($userMail); $this->folderService->setAccount($userAccount); $this->filterService->setAccount($userAccount); $this->identityService->setAccount($userAccount); // Répertoires $inputFolder = $folderService->rename($inputFolder = $folderService->get($afName . ' | Réception'), $afNewName . ' | Réception'); $sentFolder = $folderService->rename($sentFolder = $folderService->get($afName . ' | Envoi'), $afNewName . ' | Envoi'); $inputFolder = $this->folderService->rename($inputFolder = $this->folderService->get($afName . ' | Réception'), $afNewName . ' | Réception'); $sentFolder = $this->folderService->rename($sentFolder = $this->folderService->get($afName . ' | Envoi'), $afNewName . ' | Envoi'); // Filtre sortant $filter = new Filter; // $filter = $filterService->getOutput()[$afName.' | Envoi']; // $filter = $this->filterService->getOutput()[$afName.' | Envoi']; $filter->setName($afNewName . ' | Envoi'); $test = new FilterTestAddress(); $test->setHeader('from')->setStringComparison('contains')->setPart('all') Loading @@ -459,18 +417,18 @@ class ZimbraBoiteGeneriqueProcessus extends AbstractProcessus $action->setFolderPath($afNewName . ' | Envoi'); $filter->addAction($action); $filterService->deleteOutput($afName . ' | Envoi'); $filterService->createOutput($filter); $this->filterService->deleteOutput($afName . ' | Envoi'); $this->filterService->createOutput($filter); // ACE $newAce = new Right(); $newAce->setTarget($distribListService->get($newName)) $newAce->setTarget($this->distributionListService->get($newName)) ->setGrantee($userAccount) ->setRightByRightName('sendAsDistList'); $rightService->grantRight($newAce); $this->rightService->grantRight($newAce); // Avatar $identityService->delete($identityService->get($afName)); // suppression ancienne identité $this->identityService->delete($this->identityService->get($afName)); // suppression ancienne identité $identity = new Identity(); $identity->setName($afNewName); $identity->zimbraPrefFromAddress = $newName; Loading @@ -482,7 +440,7 @@ class ZimbraBoiteGeneriqueProcessus extends AbstractProcessus $identity->zimbraPrefReplyToEnabled = true; $identity->zimbraPrefWhenSentToAddresses = $newName; $identity->zimbraPrefWhenSentToEnabled = true; $identityService->create($identity); $this->identityService->create($identity); return $this; } Loading