diff --git a/renater-partage/personal/mail/mail-methods/class_mail-methods-renater-partage.inc b/renater-partage/personal/mail/mail-methods/class_mail-methods-renater-partage.inc index 35bbdd21d090b06b853ae63f8408752f684c598c..a30ac1d26e800707a9d6f430f6d03392ce846204 100644 --- a/renater-partage/personal/mail/mail-methods/class_mail-methods-renater-partage.inc +++ b/renater-partage/personal/mail/mail-methods/class_mail-methods-renater-partage.inc @@ -358,7 +358,9 @@ class mailMethodRenaterPartage extends mailMethod $account[$partageField] = $mainTab->$fdField; } } - $account['zimbraAccountStatus'] = ($mainTab->attributesAccess['userPassword']->isLocked() ? 'locked' : 'active'); + if (!class_available('supannAccount')) { + $account['zimbraAccountStatus'] = ($mainTab->attributesAccess['userPassword']->isLocked() ? 'locked' : 'active'); + } $account['initials'] = mb_strtoupper(mb_substr($mainTab->givenName, 0, 1).mb_substr($mainTab->sn, 0, 1)); /* Sync fields from SUPANN if tab is active */ @@ -369,6 +371,23 @@ class mailMethodRenaterPartage extends mailMethod $account['zimbraHideInGal'] = ($supannTab->supannListeRouge ? 'TRUE' : 'FALSE'); } + /* Lock zimbra account if MAIL is inactive or suspended in supannRessourceEtatDate */ + if (isset($this->parent->parent->by_object['supannAccountStatus']) && $this->parent->parent->by_object['supannAccountStatus']->is_account) { + $supannStatusTab = $this->parent->parent->by_object['supannAccountStatus']; + + foreach ($supannStatusTab->supannRessourceEtatDate as $line) { + list ($label, $state, $substate, $start, $end) = $supannStatusTab->attributesAccess['supannRessourceEtatDate']->attribute->readValues($line); + if ($label === 'MAIL') { + if ($state !== 'A') { + $account['zimbraAccountStatus'] = 'locked'; + } else{ + $account['zimbraAccountStatus'] = 'active'; + } + break; + } + } + } + /* Sync fields from personal if tab is active */ if (isset($this->parent->parent->by_object['personalInfo']) && $this->parent->parent->by_object['personalInfo']->is_account) { $personalTab = $this->parent->parent->by_object['personalInfo']; diff --git a/zimbra/personal/mail/mail-methods/class_mail-methods-zimbra.inc b/zimbra/personal/mail/mail-methods/class_mail-methods-zimbra.inc index 83cf3ac5d524fc67347d546e8d9df5de69e44ac3..a5ef508f4d35dc9592d4d7eeefce4b6e47c3c904 100644 --- a/zimbra/personal/mail/mail-methods/class_mail-methods-zimbra.inc +++ b/zimbra/personal/mail/mail-methods/class_mail-methods-zimbra.inc @@ -349,7 +349,10 @@ class mailMethodZimbra extends mailMethod $account[$partageField] = $mainTab->$fdField; } } - $account['zimbraAccountStatus'] = ($mainTab->attributesAccess['userPassword']->isLocked() ? 'locked' : 'active'); + if (!class_available('supannAccount')) { + $account['zimbraAccountStatus'] = ($mainTab->attributesAccess['userPassword']->isLocked() ? 'locked' : 'active'); + } + $account['initials'] = mb_strtoupper(mb_substr($mainTab->givenName, 0, 1).mb_substr($mainTab->sn, 0, 1)); /* Sync fields from SUPANN if tab is active */ @@ -368,6 +371,8 @@ class mailMethodZimbra extends mailMethod if ($label === 'MAIL') { if ($state !== 'A') { $account['zimbraAccountStatus'] = 'locked'; + } else { + $account['zimbraAccountStatus'] = 'active'; } break; }