Skip to content
Snippets Groups Projects
Commit 9c1c0063 authored by Laurent Lecluse's avatar Laurent Lecluse
Browse files

Gestion en fonfiguration de la COS des boites générique, refonte du mode de débogage.

parent b676a92f
No related branches found
No related tags found
No related merge requests found
......@@ -6,6 +6,7 @@ $settings = array(
'email' => 'adminsoap@unicaen.fr',
'password' => 'ZsIoMaBpRa',
'domain' => 'unicaen.fr',
'boite_generique_cos_id' => 'e00428a1-0c00-11d9-836a-000d93afea2a', // COS par défaut (à modifier)
);
return array(
......
......@@ -6,6 +6,7 @@ $settings = array(
'email' => 'david.surville@pp.unicaen.fr',
'password' => 'Zimbra14',
'domain' => 'pp.unicaen.fr',
'boite_generique_cos_id' => 'e00428a1-0c00-11d9-836a-000d93afea2a',
);
return array(
......
......@@ -35,6 +35,17 @@ class ModuleOptions extends \ZfcUser\Options\ModuleOptions
*/
protected $domain;
/**
*
* @var string
*/
protected $boiteGeneriqueCosId;
/**
*
* @var boolean
*/
protected $debugMode = false;
......@@ -124,7 +135,7 @@ class ModuleOptions extends \ZfcUser\Options\ModuleOptions
* @param string $domain
* @return ModuleOptions
*/
public function setdomain($domain)
public function setDomain($domain)
{
$this->domain = (string) $domain;
return $this;
......@@ -138,4 +149,44 @@ class ModuleOptions extends \ZfcUser\Options\ModuleOptions
{
return $this->domain;
}
/**
*
* @param string $boiteGeneriqueCosId
* @return ModuleOptions
*/
public function setBoiteGeneriqueCosId($boiteGeneriqueCosId)
{
$this->boiteGeneriqueCosId = (string) $boiteGeneriqueCosId;
return $this;
}
/**
*
* @return string
*/
public function getBoiteGeneriqueCosId()
{
return $this->boiteGeneriqueCosId;
}
/**
*
* @param boolean $debugMode
* @return ModuleOptions
*/
public function setDebugMode($debugMode)
{
$this->debugMode = $debugMode == true;
return $this;
}
/**
*
* @return boolean
*/
public function getDebugMode()
{
return $this->debugMode;
}
}
\ No newline at end of file
......@@ -24,11 +24,11 @@ class BoiteGenerique extends Processus
/**
* Création d'une boite générique
*
* @todo Ajouter la COS...
* @param string $name Nom de la boite
* @param string $password Mot de passe de la boite
* @param string $mail Adresse mail de la boite générique
* @param string $password Mot de passe de la boite
* @param string $name Nom de la boite
* @param string $description Description
* @return self
*/
public function create( $mail, $password, $name, $description )
{
......@@ -38,27 +38,31 @@ class BoiteGenerique extends Processus
$account = new Account;
$account->name = $mail;
$account->description = $description;
$account->zimbraCOSId = $cosService->get('default')->getId();
$account->zimbraCOSId = $this->getZimbra()->getOptions()->getBoiteGeneriqueCosId();
$accountService->create( $account, $password );
$accountService->addAlias($account, $name.substr($mail, strpos($mail,'@')));
return $this;
}
/**
* Destruction de la boite générique
*
* @param string $mail
* @param string $mail Adresse mail de la boite générique
* @return self
*/
public function delete( $mail )
{
$accountService = $this->getZimbra()->getAccountService();
$accountService->delete($accountService->get($mail));
return $this;
}
/**
* Crée une adresse fonctionnelle par rapport à la boite générique (paramètre $mail)
*
* @param string $mail
* @param string $adresseFonctionnelle
* @param string $mail Adresse mail de la boite générique
* @param string $adresseFonctionnelle Adresse mail de l'adresse fonctionnelle
* @return self
*/
public function createAdresseFonctionnelle( $mail, $adresseFonctionnelle )
{
......@@ -95,13 +99,15 @@ class BoiteGenerique extends Processus
$filter->addAction($action);
$filter->addAction( new FilterActionStop );
$filterService->createInput($filter);
return $this;
}
/**
* Supprime une adresse fonctionnelle par rapport à la boite générique (paramètre $mail)
*
* @param string $mail
* @param string $adresseFonctionnelle
* @param string $mail Adresse mail de la boite générique
* @param string $adresseFonctionnelle Adresse mail de l'adresse fonctionnelle
* @return self
*/
public function deleteAdresseFonctionnelle( $mail, $adresseFonctionnelle )
{
......@@ -125,8 +131,16 @@ class BoiteGenerique extends Processus
/* Filtres */
$filterService->deleteInput($afName.' | Réception');
return $this;
}
/**
* Donne accès à une boite fonctionnelle pour un utilisateur
*
* @param string $adresseFonctionnelle Adresse mail de l'adresse fonctionnelle
* @param string $userMail Adresse mail de l'utilisateur
* @return self
*/
public function grantUserToAdresseFonctionnelle( $adresseFonctionnelle, $userMail )
{
$afName = $this->getMailName( $adresseFonctionnelle );
......@@ -190,8 +204,16 @@ class BoiteGenerique extends Processus
$identity->zimbraPrefWhenSentToAddresses = $adresseFonctionnelle;
$identity->zimbraPrefWhenSentToEnabled = true;
$identityService->create($identity);
return $this;
}
/**
* Retire l'accès à une boite fonctionnelle pour un utilisateur
*
* @param string $adresseFonctionnelle Adresse mail de l'adresse fonctionnelle
* @param string $userMail Adresse mail de l'utilisateur
* @return self
*/
public function revokeUserFromAdresseFonctionnelle( $adresseFonctionnelle, $userMail )
{
$afName = $this->getMailName( $adresseFonctionnelle );
......@@ -225,6 +247,7 @@ class BoiteGenerique extends Processus
/* Avatar */
$identityService->delete( $identityService->get($afName) );
return $this;
}
/**
......
......@@ -27,7 +27,6 @@ use Exception;
class Zimbra implements ServiceManagerAwareInterface
{
public $debug = false;
/**
* Zimbra ID pour le puvlic (utile pour gérer les droits de partage)
......@@ -636,11 +635,11 @@ class Zimbra implements ServiceManagerAwareInterface
unset($this->message->children('soap', true)->Body);
$body = $this->message->addChild('Body');
$this->arrayToNode($body, $name, $attributes, $params, $urn );
if ($this->debug) $this->printXml ($this->message->asXml());/** @todo DEBUG : à supprimer */
if ($this->getOptions()->getDebugMode()) $this->debugXml($this->message->asXml());
curl_setopt($this->curlHandle, CURLOPT_POSTFIELDS, $this->message->asXml());
$soapMessage = curl_exec($this->curlHandle);
if ($this->debug) $this->printXml ($soapMessage);/** @todo DEBUG : à supprimer */
if ($this->getOptions()->getDebugMode()) $this->debugXml($soapMessage);
if (!$soapMessage) {
throw new Exception(curl_error($this->curlHandle), curl_errno($this->curlHandle));
}
......@@ -728,13 +727,13 @@ class Zimbra implements ServiceManagerAwareInterface
return array( '*a' => $result );
}
public function printXml( $xml )
public function debugXml( $xml )
{
echo '<div style="border:1px red solid;margin:1px;padding:1px">';
try{
if ($this->getServiceManager()->has('Test\Xml')){
$xmlHighlighter = $this->getServiceManager()->get('Test\Xml');
$xmlHighlighter->highlight( $xml );
}catch(Exception $e){
}else{
echo htmlentities( $xml );
}
echo '</div>';
......
......@@ -11,6 +11,7 @@ $settings = array(
'email' => 'adminsoap@unicaen.fr',
'password' => 'ZsIoMaBpRa',
'domain' => 'unicaen.fr',
'boite_generique_cos_id' => 'e00428a1-0c00-11d9-836a-000d93afea2a', // COS par défaut (à modifier)
);
/**
......
......@@ -11,6 +11,7 @@ $settings = array(
'email' => 'david.surville@pp.unicaen.fr',
'password' => 'Zimbra14',
'domain' => 'pp.unicaen.fr',
'boite_generique_cos_id' => 'e00428a1-0c00-11d9-836a-000d93afea2a',
);
/**
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment