|
|
@@ -203,37 +203,69 @@ class EditListDataProvider extends AddListDataProvider
|
|
|
*/
|
|
|
public function update()
|
|
|
{
|
|
|
-
|
|
|
- /**
|
|
|
- * display name
|
|
|
- */
|
|
|
- $this->formData['displayName'] = htmlentities($this->formData['displayName']);
|
|
|
-
|
|
|
- /**
|
|
|
- * reply display name
|
|
|
- */
|
|
|
- $this->formData['replyDisplayName'] = htmlentities($this->formData['replyDisplayName']);
|
|
|
-
|
|
|
/**
|
|
|
* custom members
|
|
|
*/
|
|
|
$customMembers = explode(',',$this->formData['customMember']);
|
|
|
|
|
|
+ // prepare data
|
|
|
+ // find new internal members to add
|
|
|
foreach($this->formData['memberList'] as $intMember) {
|
|
|
if(!in_array($intMember, $this->formData['memberListActually'])) {
|
|
|
$addIntMembers[] = $intMember;
|
|
|
}
|
|
|
}
|
|
|
+ // find new external members to add
|
|
|
foreach($customMembers as $extMember) {
|
|
|
if(!in_array($extMember, $this->formData['memberListActually'])) {
|
|
|
$addExtMembers[] = $extMember;
|
|
|
}
|
|
|
}
|
|
|
+ // find members to remove
|
|
|
foreach($this->formData['memberListActually'] as $oldMember) {
|
|
|
if((!in_array($oldMember,$this->formData['memberList'])) && (!in_array($oldMember,$customMembers))){
|
|
|
$delMembers[] = $oldMember;
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ $paramsSet['name'] = $this->formData['listmail'];
|
|
|
+ $paramsSet['description'] = $this->formData['description'];
|
|
|
+ $paramsSet['languageId'] = $this->formData['lang'];
|
|
|
+ $paramsSet['subscription']['type'] = $this->formData['subscriptionRequest'];
|
|
|
+ $paramsSet['subscription']['moderatorNotification'] = $this->formData['subscriptionNotify'] === 'on' ? true : false;
|
|
|
+ $paramsSet['replyTo'] = $this->formData['replyEmailAddress'];
|
|
|
+ $paramsSet['posting']['memberPosting'] = $this->formData['memberPosting'];
|
|
|
+ $paramsSet['posting']['nonMemberPosting'] = $this->formData['nonMemberPosting'];
|
|
|
+ $paramsSet['posting']['sendErrorsToModerator'] = $this->formData['sendErrorsToModerator'] === 'on' ? true : false;
|
|
|
+
|
|
|
+ $api = new KerioWhmcs('whmcsKerioEmail', 'Thurdata', '1.0');
|
|
|
+ try {
|
|
|
+ $api->login($this->getWhmcsParamByKey('serverhostname'), $this->getWhmcsParamByKey('serverusername'), $this->getWhmcsParamByKey('serverpassword'));
|
|
|
+ } catch (KerioApiException $error) {
|
|
|
+ logModuleCall(
|
|
|
+ 'kerioEmail',
|
|
|
+ __FUNCTION__,
|
|
|
+ $error,
|
|
|
+ 'Debug Error',
|
|
|
+ $error->getMessage()
|
|
|
+ );
|
|
|
+ return ['error' => $error->getMessage()];
|
|
|
+ }
|
|
|
+ // change settings
|
|
|
+ try {
|
|
|
+ $api->modifyMailinglist($this->formData['id'], $paramsSet);
|
|
|
+ } catch (KerioApiException $error) {
|
|
|
+ logModuleCall(
|
|
|
+ 'kerioEmail',
|
|
|
+ __FUNCTION__,
|
|
|
+ $error,
|
|
|
+ 'Debug Error',
|
|
|
+ $error->getMessage()
|
|
|
+ );
|
|
|
+ return ['error' => $error->getMessage()];
|
|
|
+ }
|
|
|
+
|
|
|
+ $api->logout();
|
|
|
/**
|
|
|
* hosting id
|
|
|
*/
|