andre 2 лет назад
Родитель
Сommit
0169ac1b8b
1 измененных файлов с 41 добавлено и 2 удалено
  1. 41 2
      app/UI/Client/DistributionList/Providers/EditListDataProvider.php

+ 41 - 2
app/UI/Client/DistributionList/Providers/EditListDataProvider.php

@@ -215,18 +215,57 @@ class EditListDataProvider extends AddListDataProvider
                 $addIntMembers[] = $intMember;
             }
         }
+        // prepare
+        foreach($addIntMembers as $addIntMember) {
+            $paramsAdd['members'][] = array(
+                'hasId' => TRUE,
+                'emailAddress' => $addIntMember,
+                'kind' => 'Member'
+            );
+        }
         // find new external members to add
         foreach($customMembers as $extMember) {
             if(!in_array($extMember, $this->formData['memberListActually'])) {
                 $addExtMembers[] = $extMember;
             }
         }
+        // prepare
+        foreach($addExtMembers as $addExtMember) {
+            $paramsAdd['members'][] = array(
+                'hasId' => FALSE,
+                'emailAddress' => $addExtMember,
+                'kind' => 'Member'
+            );
+        }
         // find members to remove
         foreach($this->formData['memberListActually'] as $oldMember) {
             if((!in_array($oldMember,$this->formData['memberList'])) && (!in_array($oldMember,$customMembers))){
                 $delMembers[] = $oldMember;
             }
         }
+        // prepare
+        foreach($delMembers as $delMember) {
+            $paramsDel['members'][] = array(
+                'emailAddress' => $delMember,
+                'kind' => 'Member'
+            );
+        }
+        // change moderator
+        if($this->formData['moderator'] != $this->formData['oldModerator']) {
+            if($this->formData['oldModerator'] != 'none') {
+                $paramsDel['members'][] = array(
+                    'emailAddress' => $this->formData['oldModerator'],
+                    'kind' => 'Moderator'
+                );
+            }
+            if($this->formData['moderator'] != 'none') {
+                $paramsAdd['members'][] = array(
+                    'hasId' => TRUE,
+                    'emailAddress' => $this->formData['moderator'],
+                    'kind' => 'Moderator'
+                );
+            }
+        }
 
         $paramsSet['name'] = $this->formData['listmail'];
         $paramsSet['description'] = $this->formData['description'];
@@ -280,9 +319,9 @@ class EditListDataProvider extends AddListDataProvider
         logModuleCall(
             'kerioEmail',
             __FUNCTION__,
-            $this->formData,
+            $paramsAdd,
             'Debug Formdata',
-            $paramsSet
+            $paramsDel
         );
 
         return (new HtmlDataJsonResponse())->setMessageAndTranslate('distributionListHasBeenUpdated')->setStatusSuccess();