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

+ 50 - 40
app/UI/Client/DistributionList/Providers/EditListDataProvider.php

@@ -216,12 +216,14 @@ class EditListDataProvider extends AddListDataProvider
             }
         }
         // prepare
-        foreach($addIntMembers as $addIntMember) {
-            $paramsAdd[] = array(
-                'hasId' => TRUE,
-                'emailAddress' => $addIntMember,
-                'kind' => 'Member'
-            );
+        if(!empty($addIntMembers)){
+            foreach($addIntMembers as $addIntMember) {
+                $paramsAdd[] = array(
+                    'hasId' => TRUE,
+                    'emailAddress' => $addIntMember,
+                    'kind' => 'Member'
+                );
+            }
         }
         // find new external members to add
         foreach($customMembers as $extMember) {
@@ -230,25 +232,29 @@ class EditListDataProvider extends AddListDataProvider
             }
         }
         // prepare
-        foreach($addExtMembers as $addExtMember) {
-            $paramsAdd[] = array(
-                'hasId' => FALSE,
-                'emailAddress' => $addExtMember,
-                'kind' => 'Member'
-            );
+        if(!empty($addExtMembers)){
+            foreach($addExtMembers as $addExtMember) {
+                $paramsAdd[] = array(
+                    'hasId' => FALSE,
+                    'emailAddress' => $addExtMember,
+                    'kind' => 'Member'
+                );
+            }
         }
-        // find members to remove
+    // 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[] = array(
-                'emailAddress' => $delMember,
-                'kind' => 'Member'
-            );
+        if(!empty($delMembers)){
+            foreach($delMembers as $delMember) {
+                $paramsDel[] = array(
+                    'emailAddress' => $delMember,
+                    'kind' => 'Member'
+                );
+            }
         }
         // change moderator
         if($this->formData['moderator'] != $this->formData['oldModerator']) {
@@ -313,30 +319,34 @@ class EditListDataProvider extends AddListDataProvider
             return ['error' => $error->getMessage()];
         }
         // delete mebers
-        try {
-            $api->delMlUserList($paramsDel, $this->formData['id']);
-        } catch (KerioApiException $error) {
-            logModuleCall(
-                'kerioEmail',
-                __FUNCTION__,
-                $error,
-                'Debug Error',
-                $error->getMessage()
-            );
-            return ['error' => $error->getMessage()];
+        if($paramsDel){
+            try {
+                $api->delMlUserList($paramsDel, $this->formData['id']);
+            } catch (KerioApiException $error) {
+                logModuleCall(
+                    'kerioEmail',
+                    __FUNCTION__,
+                    $error,
+                    'Debug Error',
+                    $error->getMessage()
+                );
+                return ['error' => $error->getMessage()];
+            }
         }
         // add members
-        try {
-            $api->addMlUserList($paramsAdd, $this->formData['id']);
-        } catch (KerioApiException $error) {
-            logModuleCall(
-                'kerioEmail',
-                __FUNCTION__,
-                $error,
-                'Debug Error',
-                $error->getMessage()
-            );
-            return ['error' => $error->getMessage()];
+        if($paramsAdd){
+            try {
+                $api->addMlUserList($paramsAdd, $this->formData['id']);
+            } catch (KerioApiException $error) {
+                logModuleCall(
+                    'kerioEmail',
+                    __FUNCTION__,
+                    $error,
+                    'Debug Error',
+                    $error->getMessage()
+                );
+                return ['error' => $error->getMessage()];
+            }
         }
         $api->logout();