diff options
author | ivan <ivan> | 2010-04-20 01:51:25 +0000 |
---|---|---|
committer | ivan <ivan> | 2010-04-20 01:51:25 +0000 |
commit | 9d97d8bcc06f8c0fc12cdba4fe9cb5a0ac993066 (patch) | |
tree | 288ee84b85f07f229323d84d9ff840c008885b91 /FS | |
parent | 860ba14587816649210dd43a5728cf4b007bfa54 (diff) |
communigate (phase 2): Account Preferences (& Domain::Account Defaults:Preferences): Language, Time zone, Layout, Send read receipts. RT#7514
Diffstat (limited to 'FS')
-rw-r--r-- | FS/FS/Schema.pm | 34 | ||||
-rw-r--r-- | FS/FS/part_export/communigate_pro.pm | 30 | ||||
-rw-r--r-- | FS/FS/svc_acct.pm | 188 | ||||
-rw-r--r-- | FS/FS/svc_domain.pm | 130 |
4 files changed, 335 insertions, 47 deletions
diff --git a/FS/FS/Schema.pm b/FS/FS/Schema.pm index a59156afd..67cf606fe 100644 --- a/FS/FS/Schema.pm +++ b/FS/FS/Schema.pm @@ -1660,20 +1660,31 @@ sub tables_hashref { 'last_login', @date_type, '', '', 'last_logout', @date_type, '', '', #communigate pro fields (quota = MaxAccountSize) + 'cgp_aliases', 'varchar', 'NULL', 255, '', '', + #settings + 'cgp_type', 'varchar', 'NULL', $char_d, '', '', #AccountType 'file_quota', 'varchar', 'NULL', $char_d, '', '', #MaxWebSize 'file_maxnum', 'varchar', 'NULL', $char_d, '', '', #MaxWebFiles 'file_maxsize', 'varchar', 'NULL', $char_d, '', '', #MaxFileSize 'cgp_accessmodes', 'varchar', 'NULL', 255, '', '', #AccessModes 'password_selfchange','char', 'NULL', 1, '', '', #PWDAllowed 'password_recover', 'char', 'NULL', 1, 'Y','', #PasswordRecovery - 'cgp_type', 'varchar', 'NULL', $char_d, '', '', #AccountType - 'cgp_aliases', 'varchar', 'NULL', 255, '', '', - 'cgp_deletemode', 'varchar', 'NULL', $char_d, '', '', #DeleteMode - 'cgp_emptytrash', 'varchar', 'NULL', $char_d, '', '', #EmptyTrash 'cgp_rulesallowed','varchar', 'NULL', $char_d, '', '', #RulesAllowed 'cgp_rpopallowed', 'char', 'NULL', 1, '', '', #RPOPAllowed 'cgp_mailtoall', 'char', 'NULL', 1, '', '', #MailToAll 'cgp_addmailtrailer', 'char', 'NULL', 1, '', '', #AddMailTrailer + #XXX archive messages, mailing lists + #preferences + 'cgp_deletemode', 'varchar', 'NULL', $char_d, '', '', #DeleteMode + 'cgp_emptytrash', 'varchar', 'NULL', $char_d, '', '', #EmptyTrash + 'cgp_language', 'varchar', 'NULL', $char_d, '', '', #Language + 'cgp_timezone', 'varchar', 'NULL', $char_d, '', '', #TimeZone + 'cgp_skinname', 'varchar', 'NULL', $char_d, '', '', #SkinName + #XXX pronto style? + 'cgp_sendmdnmode', 'varchar', 'NULL', $char_d, '', '', #SendMDNMode + #mail +#vacation message, redirect all mail, mail rules + #XXX RPOP settings ], 'primary_key' => 'svcnum', #'unique' => [ [ 'username', 'domsvc' ] ], @@ -1722,6 +1733,7 @@ sub tables_hashref { 'trailer', 'text', 'NULL', '', '', '', 'cgp_aliases', 'varchar', 'NULL', 255, '', '', 'cgp_accessmodes','varchar','NULL', 255, '', '', #DomainAccessModes + #settings 'acct_def_password_selfchange','char', 'NULL', 1, '', '', 'acct_def_password_recover', 'char', 'NULL', 1, 'Y', '', 'acct_def_cgp_accessmodes', 'varchar', 'NULL', 255, '', '', @@ -1729,13 +1741,21 @@ sub tables_hashref { 'acct_def_file_quota', 'varchar', 'NULL', $char_d, '', '', 'acct_def_file_maxnum', 'varchar', 'NULL', $char_d, '', '', 'acct_def_file_maxsize', 'varchar', 'NULL', $char_d, '', '', - 'acct_def_cgp_deletemode', 'varchar', 'NULL', $char_d, '', '', - 'acct_def_cgp_emptytrash', 'varchar', 'NULL', $char_d, '', '', 'acct_def_cgp_rulesallowed','varchar', 'NULL', $char_d, '', '', 'acct_def_cgp_rpopallowed', 'char', 'NULL', 1, '', '', 'acct_def_cgp_mailtoall', 'char', 'NULL', 1, '', '', 'acct_def_cgp_addmailtrailer', 'char', 'NULL', 1, '', '', - + #XXX archive messages + #preferences + 'acct_def_cgp_deletemode', 'varchar', 'NULL', $char_d, '', '', + 'acct_def_cgp_emptytrash', 'varchar', 'NULL', $char_d, '', '', + 'acct_def_cgp_language', 'varchar', 'NULL', $char_d, '', '', + 'acct_def_cgp_timezone', 'varchar', 'NULL', $char_d, '', '', + 'acct_def_cgp_skinname', 'varchar', 'NULL', $char_d, '', '', + #XXX pronto style? + 'acct_def_cgp_sendmdnmode', 'varchar', 'NULL', $char_d, '', '', + #mail + #XXX rules, archive rule, spam foldering rule(s) ], 'primary_key' => 'svcnum', 'unique' => [ ], diff --git a/FS/FS/part_export/communigate_pro.pm b/FS/FS/part_export/communigate_pro.pm index a666ca0b2..8148b5a33 100644 --- a/FS/FS/part_export/communigate_pro.pm +++ b/FS/FS/part_export/communigate_pro.pm @@ -109,7 +109,11 @@ sub _export_insert_svc_acct { 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 + $prefs{'Language'} = $svc_acct->cgp_language if $svc_acct->cgp_language; + $prefs{'TimeZone'} = $svc_acct->cgp_timezone if $svc_acct->cgp_timezone; + $prefs{'SkinName'} = $svc_acct->cgp_skinname if $svc_acct->cgp_skinname; + #XXX pronto style + $prefs{'SendMDNMode'} = $svc_acct->cgp_sendmdnmode if $svc_acct->cgp_sendmdnmode; if ( keys %prefs ) { my $pref_err = $self->communigate_pro_queue( $svc_acct->svcnum, 'UpdateAccountPrefs', @@ -189,8 +193,13 @@ sub _export_insert_svc_domain { my $pref_err = $self->communigate_pro_queue( $svc_domain->svcnum, 'SetAccountDefaultPrefs', $svc_domain->domain, - 'DeleteMode' => $svc_domain->acct_def_cgp_deletemode, - 'EmptyTrash' => $svc_domain->acct_def_cgp_emptytrash, + 'DeleteMode' => $svc_domain->acct_def_cgp_deletemode, + 'EmptyTrash' => $svc_domain->acct_def_cgp_emptytrash, + 'Language' => $svc_domain->acct_def_cgp_language, + 'TimeZone' => $svc_domain->acct_def_cgp_timezone, + 'SkinName' => $svc_domain->acct_def_cgp_skinname, + #XXX pronto style? + 'SendMDNMode' => $svc_domain->acct_def_cgp_sendmdnmode, ); warn "WARNING: error queueing SetAccountDefaultPrefs job: $pref_err" if $pref_err; @@ -310,7 +319,15 @@ sub _export_replace_svc_acct { 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 + $prefs{'Language'} = $new->cgp_language + if $old->cgp_language ne $new->cgp_language; + $prefs{'TimeZone'} = $new->cgp_timezone + if $old->cgp_timezone ne $new->cgp_timezone; + $prefs{'SkinName'} = $new->cgp_skinname + if $old->cgp_skinname ne $new->cgp_skinname; + #XXX pronto style + $prefs{'SendMDNMode'} = $new->cgp_sendmdnmode + if $old->cgp_sendmdnmode ne $new->cgp_sendmdnmode; if ( keys %prefs ) { my $pref_err = $self->communigate_pro_queue( $new->svcnum, 'UpdateAccountPrefs', @@ -402,6 +419,11 @@ sub _export_replace_svc_domain { $new->domain, 'DeleteMode' => $new->acct_def_cgp_deletemode, 'EmptyTrash' => $new->acct_def_cgp_emptytrash, + 'Language' => $new->acct_def_cgp_language, + 'TimeZone' => $new->acct_def_cgp_timezone, + 'SkinName' => $new->acct_def_cgp_skinname, + #XXX Pronto style + 'SendMDNMode' => $new->acct_def_cgp_sendmdnmode, ); warn "WARNING: error queueing SetAccountDefaultPrefs job: $pref_err" if $pref_err; diff --git a/FS/FS/svc_acct.pm b/FS/FS/svc_acct.pm index 954d03051..666a56ab9 100644 --- a/FS/FS/svc_acct.pm +++ b/FS/FS/svc_acct.pm @@ -268,44 +268,12 @@ sub table_info { disable_fixed => 1, disable_select => 1, }, - 'cgp_type'=> { - label => 'Communigate account type', - type => 'select', - select_list => [qw( MultiMailbox TextMailbox MailDirMailbox AGrade BGrade CGrade )], - disable_inventory => 1, - disable_select => 1, - }, - 'cgp_accessmodes' => { - label => 'Communigate enabled services', - type => 'communigate_pro-accessmodes', - disable_inventory => 1, - disable_select => 1, - }, - 'cgp_aliases' => { - label => 'Communigate aliases', - type => 'text', - disable_inventory => 1, - disable_select => 1, - }, 'password_selfchange' => { label => 'Password modification', type => 'checkbox', }, 'password_recover' => { label => 'Password recovery', type => 'checkbox', }, - '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', @@ -434,6 +402,155 @@ sub table_info { label => 'Last logout', type => 'disabled', }, + + 'cgp_aliases' => { + label => 'Communigate aliases', + type => 'text', + disable_inventory => 1, + disable_select => 1, + }, + #settings + 'cgp_type'=> { + label => 'Communigate account type', + type => 'select', + select_list => [qw( MultiMailbox TextMailbox MailDirMailbox AGrade BGrade CGrade )], + disable_inventory => 1, + disable_select => 1, + }, + 'cgp_accessmodes' => { + label => 'Communigate enabled services', + type => 'communigate_pro-accessmodes', + disable_inventory => 1, + disable_select => 1, + }, + 'cgp_rulesallowed' => { + label => 'Allowed mail rules', + type => 'select', + select_list => [ '', 'No', 'Filter Only', 'All But Exec', 'Any' ], + disable_inventory => 1, + disable_select => 1, + }, + 'cgp_rpopallowed' => { label => 'RPOP modifications', + type => 'checkbox', + }, + 'cgp_mailtoall' => { label => 'Accepts mail to "all"', + type => 'checkbox', + }, + 'cgp_addmailtrailer' => { label => 'Add trailer to sent mail', + type => 'checkbox', + }, + #XXX archive messages, mailing lists + + #preferences + '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, + }, + 'cgp_language' => { + label => 'Communigate language', + type => 'select', + select_list => [ '', qw( English Arabic Chinese Dutch French German Hebrew Italian Japanese Portuguese Russian Slovak Spanish Thai ) ], + disable_inventory => 1, + disable_select => 1, + }, + 'cgp_timezone' => { + label => 'Communigate time zone', + type => 'select', + select_list => [ '', + 'HostOS', + '(+0100) Algeria/Congo', + '(+0200) Egypt/South Africa', + '(+0300) Saudi Arabia', + '(+0400) Oman', + '(+0500) Pakistan', + '(+0600) Bangladesh', + '(+0700) Thailand/Vietnam', + '(+0800) China/Malaysia', + '(+0900) Japan/Korea', + '(+1000) Queensland', + '(+1100) Micronesia', + '(+1200) Fiji', + '(+1300) Tonga/Kiribati', + '(+1400) Christmas Islands', + '(-0100) Azores/Cape Verde', + '(-0200) Fernando de Noronha', + '(-0300) Argentina/Uruguay', + '(-0400) Venezuela/Guyana', + '(-0500) Haiti/Peru', + '(-0600) Central America', + '(-0700) Arisona', + '(-0800) Adamstown', + '(-0900) Marquesas Islands', + '(-1000) Hawaii/Tahiti', + '(-1100) Samoa', + 'Asia/Afghanistan', + 'Asia/India', + 'Asia/Iran', + 'Asia/Iraq', + 'Asia/Israel', + 'Asia/Jordan', + 'Asia/Lebanon', + 'Asia/Syria', + 'Australia/Adelaide', + 'Australia/East', + 'Australia/NorthernTerritory', + 'Europe/Central', + 'Europe/Eastern', + 'Europe/Moscow', + 'Europe/Western', + 'GMT (+0000)', + 'Newfoundland', + 'NewZealand/Auckland', + 'NorthAmerica/Alaska', + 'NorthAmerica/Atlantic', + 'NorthAmerica/Central', + 'NorthAmerica/Eastern', + 'NorthAmerica/Mountain', + 'NorthAmerica/Pacific', + 'Russia/Ekaterinburg', + 'Russia/Irkutsk', + 'Russia/Kamchatka', + 'Russia/Krasnoyarsk', + 'Russia/Magadan', + 'Russia/Novosibirsk', + 'Russia/Vladivostok', + 'Russia/Yakutsk', + 'SouthAmerica/Brasil', + 'SouthAmerica/Chile', + 'SouthAmerica/Paraguay', + ], + disable_inventory => 1, + disable_select => 1, + }, + 'cgp_skinname' => { + label => 'Communigate layout', + type => 'select', + select_list => [ '', '***', 'GoldFleece', 'Skin2' ], + disable_inventory => 1, + disable_select => 1, + }, + #XXX pronto style? + 'cgp_sendmdnmode' => { + label => 'Communigate send read receipts', + type => 'select', + select_list => [ '', 'Never', 'Manually', 'Automatically' ], + disable_inventory => 1, + disable_select => 1, + }, + + #mail + #XXX vacation message, redirect all mail, mail rules + #XXX RPOP settings + }, }; } @@ -1119,6 +1236,13 @@ sub check { #preferences || $self->ut_alphasn('cgp_deletemode') || $self->ut_alphan('cgp_emptytrash') + || $self->ut_alphan('cgp_language') + || $self->ut_textn('cgp_timezone') + || $self->ut_textn('cgp_skinname') + #XXX pronto style? + || $self->ut_alphan('cgp_sendmdnmode') + #XXX vacation message, redirect all mail, mail rules + #XXX RPOP settings ; return $error if $error; diff --git a/FS/FS/svc_domain.pm b/FS/FS/svc_domain.pm index 5a593bb05..46605f4a0 100644 --- a/FS/FS/svc_domain.pm +++ b/FS/FS/svc_domain.pm @@ -189,8 +189,120 @@ sub table_info { disable_inventory => 1, disable_select => 1, }, - - + 'acct_def_cgp_rulesallowed' => { + label => 'Acct. default Allowed mail rules', + type => 'select', + select_list => [ '', 'No', 'Filter Only', 'All But Exec', 'Any' ], + disable_inventory => 1, + disable_select => 1, + }, + 'acct_def_cgp_rpopallowed' => { + label => 'Acct. default RPOP modifications', + type => 'checkbox', + }, + 'acct_def_cgp_mailtoall' => { + label => 'Acct. default Accepts mail to "all"', + type => 'checkbox', + }, + 'acct_def_cgp_addmailtrailer' => { + label => 'Acct. default Add trailer to sent mail', + type => 'checkbox', + }, + 'trailer' => { + label => 'Mail trailer', + type => 'textarea', + }, + 'acct_def_cgp_language' => { + label => 'Acct. default language', + type => 'select', + select_list => [ '', qw( English Arabic Chinese Dutch French German Hebrew Italian Japanese Portuguese Russian Slovak Spanish Thai ) ], + disable_inventory => 1, + disable_select => 1, + }, + 'acct_def_cgp_timezone' => { + label => 'Acct. default time zone', + type => 'select', + select_list => [ '', + 'HostOS', + '(+0100) Algeria/Congo', + '(+0200) Egypt/South Africa', + '(+0300) Saudi Arabia', + '(+0400) Oman', + '(+0500) Pakistan', + '(+0600) Bangladesh', + '(+0700) Thailand/Vietnam', + '(+0800) China/Malaysia', + '(+0900) Japan/Korea', + '(+1000) Queensland', + '(+1100) Micronesia', + '(+1200) Fiji', + '(+1300) Tonga/Kiribati', + '(+1400) Christmas Islands', + '(-0100) Azores/Cape Verde', + '(-0200) Fernando de Noronha', + '(-0300) Argentina/Uruguay', + '(-0400) Venezuela/Guyana', + '(-0500) Haiti/Peru', + '(-0600) Central America', + '(-0700) Arisona', + '(-0800) Adamstown', + '(-0900) Marquesas Islands', + '(-1000) Hawaii/Tahiti', + '(-1100) Samoa', + 'Asia/Afghanistan', + 'Asia/India', + 'Asia/Iran', + 'Asia/Iraq', + 'Asia/Israel', + 'Asia/Jordan', + 'Asia/Lebanon', + 'Asia/Syria', + 'Australia/Adelaide', + 'Australia/East', + 'Australia/NorthernTerritory', + 'Europe/Central', + 'Europe/Eastern', + 'Europe/Moscow', + 'Europe/Western', + 'GMT (+0000)', + 'Newfoundland', + 'NewZealand/Auckland', + 'NorthAmerica/Alaska', + 'NorthAmerica/Atlantic', + 'NorthAmerica/Central', + 'NorthAmerica/Eastern', + 'NorthAmerica/Mountain', + 'NorthAmerica/Pacific', + 'Russia/Ekaterinburg', + 'Russia/Irkutsk', + 'Russia/Kamchatka', + 'Russia/Krasnoyarsk', + 'Russia/Magadan', + 'Russia/Novosibirsk', + 'Russia/Vladivostok', + 'Russia/Yakutsk', + 'SouthAmerica/Brasil', + 'SouthAmerica/Chile', + 'SouthAmerica/Paraguay', + ], + disable_inventory => 1, + disable_select => 1, + }, + 'acct_def_cgp_skinname' => { + label => 'Acct. default layout', + type => 'select', + select_list => [ '', '***', 'GoldFleece', 'Skin2' ], + disable_inventory => 1, + disable_select => 1, + }, + #XXX pronto style? + 'acct_def_cgp_sendmdnmode' => { + label => 'Acct. default send read receipts', + type => 'select', + select_list => [ '', 'Never', 'Manually', 'Automatically' ], + disable_inventory => 1, + disable_select => 1, + }, }, }; } @@ -428,12 +540,22 @@ sub check { || $self->ut_alphan('acct_def_file_quota') || $self->ut_alphan('acct_def_maxnum') || $self->ut_alphan('acct_def_maxsize') - || $self->ut_alphasn('acct_def_cgp_deletemode') - || $self->ut_alphan('acct_def_cgp_emptytrash') + #settings || $self->ut_alphasn('acct_def_cgp_rulesallowed') || $self->ut_enum('acct_def_cgp_rpopallowed', [ '', 'Y' ]) || $self->ut_enum('acct_def_cgp_mailtoall', [ '', 'Y' ]) || $self->ut_enum('acct_def_cgp_addmailtrailer', [ '', 'Y' ]) + #XXX archive messages + #preferences + || $self->ut_alphasn('acct_def_cgp_deletemode') + || $self->ut_alphan('acct_def_cgp_emptytrash') + || $self->ut_alphan('acct_def_cgp_language') + || $self->ut_textn('acct_def_cgp_timezone') + || $self->ut_textn('acct_def_cgp_skinname') + #XXX pronto style? + || $self->ut_alphan('acct_def_cgp_sendmdnmode') + #mail + #XXX rules, archive rule, spam foldering rule(s) ; return $error if $error; |