X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=FS%2FFS%2Fpart_export%2Fcommunigate_pro.pm;h=a3ec5e0bed2c25bd53d313e1c15e24b632fe0d50;hp=3ac0dfd9c797f1965b1e4ed5ef060a8da5697996;hb=246e76618447bb7ac436e9bfb8c0b042f9613326;hpb=4b2097a9bddecbfea9a5caa62b5c3607f335f288 diff --git a/FS/FS/part_export/communigate_pro.pm b/FS/FS/part_export/communigate_pro.pm index 3ac0dfd9c..a3ec5e0be 100644 --- a/FS/FS/part_export/communigate_pro.pm +++ b/FS/FS/part_export/communigate_pro.pm @@ -85,10 +85,12 @@ sub _export_insert_svc_acct { 'MailToAll' =>($svc_acct->cgp_mailtoall ?'YES':'NO'), 'AddMailTrailer' =>($svc_acct->cgp_addmailtrailer ?'YES':'NO'), + 'ArchiveMessagesAfter' => $svc_acct->cgp_archiveafter, + map { $quotas{$_} => $svc_acct->$_() } grep $svc_acct->$_(), keys %quotas ); - #XXX phase 3: archive messages, mailing lists + #XXX phase 3: mailing lists my @options = ( 'CreateAccount', 'accountName' => $self->export_username($svc_acct), @@ -144,6 +146,15 @@ sub _export_insert_svc_acct { warn "WARNING: error queueing SetAccountMailRules job: $rule_error" if $rule_error; + my $rpop_error = $self->communigate_pro_queue( + $svc_acct->svcnum, + 'SetAccountRPOPs', + $self->export_username($svc_acct), + $svc_acct->cgp_rpop_hashref, + ); + warn "WARNING: error queueing SetAccountMailRPOPs job: $rpop_error" + if $rpop_error; + ''; } @@ -162,6 +173,8 @@ sub _export_insert_svc_domain { if $svc_domain->parent_svcnum; $settings{'TrailerText'} = $svc_domain->trailer if $svc_domain->trailer; + $settings{'CertificateType'} = $svc_domain->cgp_certificatetype + if $svc_domain->cgp_certificatetype; my @options = ( $create, $svc_domain->domain, \%settings ); @@ -194,6 +207,7 @@ sub _export_insert_svc_domain { 'RPOPAllowed' =>($svc_domain->acct_def_cgp_rpopallowed ?'YES':'NO'), 'MailToAll' =>($svc_domain->acct_def_cgp_mailtoall ?'YES':'NO'), 'AddMailTrailer' =>($svc_domain->acct_def_cgp_addmailtrailer ?'YES':'NO'), + 'ArchiveMessagesAfter' => $svc_domain->acct_def_cgp_archiveafter, ); warn "WARNING: error queueing SetAccountDefaults job: $def_err" if $def_err; @@ -318,8 +332,10 @@ sub _export_replace_svc_acct { if $old->cgp_mailtoall ne $new->cgp_mailtoall; $settings{'AddMailTrailer'} = ( $new->cgp_addmailtrailer ? 'YES':'NO' ) if $old->cgp_addmailtrailer ne $new->cgp_addmailtrailer; + $settings{'ArchiveMessagesAfter'} = $new->cgp_archiveafter + if $old->cgp_archiveafter ne $new->cgp_archiveafter; - #XXX phase 3: archive messages, mailing lists + #XXX phase 3: mailing lists if ( keys %settings ) { my $error = $self->communigate_pro_queue( @@ -376,6 +392,15 @@ sub _export_replace_svc_acct { warn "WARNING: error queueing SetAccountMailRules job: $rule_error" if $rule_error; + my $rpop_error = $self->communigate_pro_queue( + $new->svcnum, + 'SetAccountRPOPs', + $self->export_username($new), + $new->cgp_rpop_hashref, + ); + warn "WARNING: error queueing SetAccountMailRPOPs job: $rpop_error" + if $rpop_error; + ''; } @@ -403,6 +428,8 @@ sub _export_replace_svc_domain { $settings{'AdminDomainName'} = $new->parent_svcnum ? $new->parent_svc_x->domain : '' if $old->parent_svcnum != $new->parent_svcnum; + $settings{'CertificateType'} = $new->cgp_certificatetype + if $old->cgp_certificatetype ne $new->cgp_certificatetype; if ( keys %settings ) { my $error = $self->communigate_pro_queue( $new->svcnum, @@ -441,6 +468,7 @@ sub _export_replace_svc_domain { 'RPOPAllowed' => ( $new->acct_def_cgp_rpopallowed ? 'YES' : 'NO' ), 'MailToAll' => ( $new->acct_def_cgp_mailtoall ? 'YES' : 'NO' ), 'AddMailTrailer' => ( $new->acct_def_cgp_addmailtrailer ? 'YES' : 'NO' ), + 'ArchiveMessagesAfter' => $new->acct_def_cgp_archiveafter, ); warn "WARNING: error queueing SetAccountDefaults job: $def_err" if $def_err; @@ -730,13 +758,7 @@ sub export_getsettings_svc_domain { foreach my $key ( grep ref($effective_settings->{$_}), keys %$effective_settings ) { - my $value = $effective_settings->{$key}; - if ( ref($value) eq 'ARRAY' ) { - $effective_settings->{$key} = join(' ', @$value); - } else { - #XXX - warn "serializing ". ref($value). " for table display not yet handled"; - } + $effective_settings->{$key} = _pretty( $effective_settings->{$key} ); } %{$settingsref} = %$effective_settings; @@ -801,6 +823,20 @@ sub export_getsettings_svc_acct { map _rule2string($_), @$rules ); +# #rpops too +# my $rpops = eval { $self->communigate_pro_runcommand( +# 'GetAccountRPOPs', +# $svc_acct->email +# ) }; +# return $@ if $@; +# +# %$effective_settings = ( %$effective_settings, +# map _rpop2string($_), %$rpops +# ); +# %$settings = ( %$settings, +# map _rpop2string($_), %rpops +# ); + #aliases too my $aliases = eval { $self->communigate_pro_runcommand( 'GetAccountAliases', @@ -819,13 +855,7 @@ sub export_getsettings_svc_acct { foreach my $key ( grep ref($effective_settings->{$_}), keys %$effective_settings ) { - my $value = $effective_settings->{$key}; - if ( ref($value) eq 'ARRAY' ) { - $effective_settings->{$key} = join(' ', @$value); - } else { - #XXX - warn "serializing ". ref($value). " for table display not yet handled"; - } + $effective_settings->{$key} = _pretty( $effective_settings->{$key} ); } %{$settingsref} = %$effective_settings; @@ -835,6 +865,22 @@ sub export_getsettings_svc_acct { } +sub _pretty { + my $value = shift; + if ( ref($value) eq 'ARRAY' ) { + '['. join(' ', map { ref($_) ? _pretty($_) : $_ } @$value ). ']'; + } elsif ( ref($value) eq 'HASH' ) { + '{'. join(', ', + map { my $v = $value->{$_}; + "$_:". ( ref($v) ? _pretty($v) : $v ); + } + keys %$value + ). '}'; + } else { + warn "serializing ". ref($value). " for table display not yet handled"; + } +} + sub export_getsettings_svc_forward { my($self, $svc_forward, $settingsref, $defaultref ) = @_; @@ -860,6 +906,14 @@ sub _rule2string { ("Mail rule $name" => "$priority IF $conditions THEN $actions ($comment)"); } +#sub _rpop2string { +# my $rpop = shift; +# my($priority, $name, $conditions, $actions, $comment) = @$rule; +# $conditions = join(', ', map { my $a = $_; join(' ', @$a); } @$conditions); +# $actions = join(', ', map { my $a = $_; join(' ', @$a); } @$actions); +# ("Mail rule $name" => "$priority IF $conditions THEN $actions ($comment)"); +#} + sub export_getsettings_svc_mailinglist { my($self, $svc_mailinglist, $settingsref, $defaultref ) = @_; @@ -897,6 +951,7 @@ sub communigate_pro_queue_dep { 'UpdateAccountDefaults' => 'cp_Scalar_settingsHash', 'SetAccountDefaultPrefs' => 'cp_Scalar_settingsHash', 'UpdateAccountDefaultPrefs' => 'cp_Scalar_settingsHash', + 'SetAccountRPOPs' => 'cp_Scalar_Hash', ); my $sub = exists($kludge_methods{$method}) ? $kludge_methods{$method}