'password_selfchange','char', 'NULL', 1, '', '',
'password_recover', 'char', 'NULL', 1, '', '',
'cgp_type', 'varchar', 'NULL', $char_d, '', '', #AccountType
- 'cgp_aliases', 'varchar', 'NULL', 255, '', '', #AccountType
+ 'cgp_aliases', 'varchar', 'NULL', 255, '', '',
+ 'cgp_deletemode', 'varchar', 'NULL', $char_d, '', '', #DeleteMode
+ 'cgp_emptytrash', 'varchar', 'NULL', $char_d, '', '', #EmptyTrash
],
'primary_key' => 'svcnum',
#'unique' => [ [ 'username', 'domsvc' ] ],
map { $quotas{$_} => $svc_acct->$_() }
grep $svc_acct->$_(), keys %quotas
);
-
- #XXX preferences phase 1: message delete method, on logout remove trash
- #phase 2: language, time zone, layout, pronto style, send read receipts
-
#phase 2: pwdallowed, passwordrecovery, allowed mail rules,
# RPOP modifications, accepts mail to all, add trailer to sent mail
#phase 3: archive messages, mailing lists
if $self->option('externalFlag');
#let's do the create realtime too, for much the same reasons, and to avoid
- #pain of trying to queue w/dep the aliases
+ #pain of trying to queue w/dep the prefs & aliases
#my $r=
eval { $self->communigate_pro_runcommand( @options ) };
return $@ if $@;
- my $err= $self->communigate_pro_queue( $svc_acct->svcnum, 'SetAccountAliases',
- $self->export_username($svc_acct),
- [ split(/\s*,\s*/, $svc_acct->cgp_aliases) ],
- );
- warn "WARNING: error queueing SetAccountAliases job: $err" if $err;
+ #preferences
+ my %prefs = ();
+ $prefs{'DeleteMode'} = $svc_acct->cgp_deletemode if $svc_acct->cgp_deletemode;
+ $prefs{'EmptyTrash'} = $svc_acct->cgp_emptytrash if $svc_acct->cgp_emptytrash;
+ #phase 2: language, time zone, layout, pronto style, send read receipts
+ if ( keys %prefs ) {
+ my $pref_err = $self->communigate_pro_queue( $svc_acct->svcnum,
+ 'UpdateAccountPrefs',
+ $self->export_username($svc_acct),
+ %prefs,
+ );
+ warn "WARNING: error queueing UpdateAccountPrefs job: $pref_err"
+ if $pref_err;
+ }
+
+ #aliases
+ if ( $svc_acct->cgp_aliases ) {
+ my $alias_err = $self->communigate_pro_queue( $svc_acct->svcnum,
+ 'SetAccountAliases',
+ $self->export_username($svc_acct),
+ [ split(/\s*,\s*/, $svc_acct->cgp_aliases) ],
+ );
+ warn "WARNING: error queueing SetAccountAliases job: $alias_err"
+ if $alias_err;
+ }
'';
return $error if $error;
}
+ #preferences
+ my %prefs = ();
+ $prefs{'DeleteMode'} = $new->cgp_deletemode
+ if $old->cgp_deletemode ne $new->cgp_deletemode;
+ $prefs{'EmptyTrash'} = $new->cgp_emptytrash
+ if $old->cgp_emptytrash ne $new->cgp_emptytrash;
+ #phase 2: language, time zone, layout, pronto style, send read receipts
+ if ( keys %prefs ) {
+ my $pref_err = $self->communigate_pro_queue( $new->svcnum,
+ 'UpdateAccountPrefs',
+ $self->export_username($new),
+ %prefs,
+ );
+ warn "WARNING: error queueing UpdateAccountPrefs job: $pref_err"
+ if $pref_err;
+ }
+
if ( $old->cgp_aliases ne $new->cgp_aliases ) {
my $error = $self->communigate_pro_queue(
$new->svcnum,
return $error if $error;
}
- #XXX preferences phase 1: message delete method, on logout remove trash
- #phase 2: language, time zone, layout, pronto style, send read receipts
-
'';
}
my %kludge_methods = (
'CreateAccount' => 'CreateAccount',
'UpdateAccountSettings' => 'UpdateAccountSettings',
+ 'UpdateAccountPrefs' => 'cp_Scalar_Hash',
'CreateDomain' => 'cp_Scalar_Hash',
'CreateSharedDomain' => 'cp_Scalar_Hash',
'UpdateDomainSettings' => 'UpdateDomainSettings',
'cgp_type'=> {
label => 'Communigate account type',
type => 'select',
- select_list => [ ],
+ select_list => [qw( MultiMailbox TextMailbox MailDirMailbox AGrade BGrade CGrade )],
disable_inventory => 1,
disable_select => 1,
},
disable_inventory => 1,
disable_select => 1,
},
+ 'cgp_deletemode' => {
+ label => 'Communigate message delete method',
+ type => 'select',
+ select_list => [ 'Move To Trash', 'Immediately', 'Mark' ],
+ disable_inventory => 1,
+ disable_select => 1,
+ },
+ 'cgp_emptytrash' => {
+ label => 'Communigate on logout remove trash',
+ type => 'text',
+ disable_inventory => 1,
+ disable_select => 1,
+ },
'quota' => {
label => 'Quota', #Mail storage limit
type => 'text',
|| $self->ut_textn( 'cgp_accessmodes' )
|| $self->ut_alphan( 'cgp_type' )
|| $self->ut_textn( 'cgp_aliases' ) #well
+ || $self->ut_alphasn( 'cgp_deletemode' )
+ || $self->ut_alphan( 'cgp_emptytrash' )
;
return $error if $error;
% }
% }
+% if ( $communigate ) {
+
+ <TR>
+ <TD ALIGN="right">Message delete method</TD>
+ <TD>
+ <SELECT NAME="cgp_deletemode">
+% for ( 'Move To Trash', 'Immediately', 'Mark' ) {
+ <OPTION VALUE="<% $_ %>"
+ <% $_ eq $svc_acct->cgp_deletemode ? 'SELECTED' : '' %>
+ ><% $_ %>
+% }
+ </SELECT>
+ </TD>
+ </TR>
+
+ <TR>
+ <TD ALIGN="right">On logout remove trash</TD>
+ <TD><INPUT TYPE="text" NAME="cgp_emptytrash" VALUE="<% $svc_acct->cgp_emptytrash %>"></TD>
+ </TR>
+
+% } else {
+
+ <INPUT TYPE="hidden" NAME="cgp_deletemode" VALUE="<% $svc_acct->cgp_deletemode %>">
+ <INPUT TYPE="hidden" NAME="cgp_emptytrash" VALUE="<% $svc_acct->cgp_emptytrash %>">
+
+% }
+
% if ( $part_svc->part_svc_column('slipip')->columnflag =~ /^[FA]$/ ) {
<INPUT TYPE="hidden" NAME="slipip" VALUE="<% $svc_acct->slipip %>">