From 860ba14587816649210dd43a5728cf4b007bfa54 Mon Sep 17 00:00:00 2001 From: ivan Date: Mon, 19 Apr 2010 07:09:17 +0000 Subject: [PATCH] communigate (phase 2), Account:Settings PasswordRecovery. also fix modification of svc_acct booleans in export. RT#7514 --- FS/FS/Schema.pm | 4 ++-- FS/FS/part_export/communigate_pro.pm | 15 ++++++++------- FS/FS/svc_acct.pm | 6 ++++-- httemplate/edit/svc_acct.cgi | 14 ++++++++++++-- httemplate/view/svc_acct/basics.html | 3 ++- 5 files changed, 28 insertions(+), 14 deletions(-) diff --git a/FS/FS/Schema.pm b/FS/FS/Schema.pm index a9fde2f91..a59156afd 100644 --- a/FS/FS/Schema.pm +++ b/FS/FS/Schema.pm @@ -1665,7 +1665,7 @@ sub tables_hashref { 'file_maxsize', 'varchar', 'NULL', $char_d, '', '', #MaxFileSize 'cgp_accessmodes', 'varchar', 'NULL', 255, '', '', #AccessModes 'password_selfchange','char', 'NULL', 1, '', '', #PWDAllowed - 'password_recover', 'char', 'NULL', 1, '', '', #PasswordRecovery + '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 @@ -1723,7 +1723,7 @@ sub tables_hashref { 'cgp_aliases', 'varchar', 'NULL', 255, '', '', 'cgp_accessmodes','varchar','NULL', 255, '', '', #DomainAccessModes 'acct_def_password_selfchange','char', 'NULL', 1, '', '', - 'acct_def_password_recover', 'char', 'NULL', 1, '', '', + 'acct_def_password_recover', 'char', 'NULL', 1, 'Y', '', 'acct_def_cgp_accessmodes', 'varchar', 'NULL', 255, '', '', 'acct_def_quota', 'varchar', 'NULL', $char_d, '', '', 'acct_def_file_quota', 'varchar', 'NULL', $char_d, '', '', diff --git a/FS/FS/part_export/communigate_pro.pm b/FS/FS/part_export/communigate_pro.pm index b94eaf66d..a666ca0b2 100644 --- a/FS/FS/part_export/communigate_pro.pm +++ b/FS/FS/part_export/communigate_pro.pm @@ -78,7 +78,8 @@ sub _export_insert_svc_acct { 'RealName' => $svc_acct->finger, 'Password' => $svc_acct->_password, - #phase 2: allowed mail rules, RPOP modifications, accepts mail to all, add trailer to sent mail + 'PasswordRecovery' => ($svc_acct->password_recover ? 'YES':'NO'), + 'RulesAllowed' => $svc_acct->cgp_rulesallowed, 'RPOPAllowed' =>($svc_acct->cgp_rpopallowed ?'YES':'NO'), 'MailToAll' =>($svc_acct->cgp_mailtoall ?'YES':'NO'), @@ -87,7 +88,6 @@ sub _export_insert_svc_acct { map { $quotas{$_} => $svc_acct->$_() } grep $svc_acct->$_(), keys %quotas ); - #XXX phase 2: pwdallowed, passwordrecovery #XXX phase 3: archive messages, mailing lists my @options = ( 'CreateAccount', @@ -280,17 +280,18 @@ sub _export_replace_svc_acct { if $old->cgp_accessmodes ne $new->cgp_accessmodes || $old->cgp_type ne $new->cgp_type; - #phase 2: allowed mail rules, RPOP modifications, accepts mail to all, add trailer to sent mail + $settings{'PasswordRecovery'} = ( $new->password_recover ? 'YES':'NO' ) + if $old->password_recover ne $new->password_recover; + $settings{'RulesAllowed'} = $new->cgp_rulesallowed if $old->cgp_rulesallowed ne $new->cgp_rulesallowed; - $settings{'RPOPAllowed'} = $new->cgp_rpopallowed + $settings{'RPOPAllowed'} = ( $new->cgp_rpopallowed ? 'YES':'NO' ) if $old->cgp_rpopallowed ne $new->cgp_rpopallowed; - $settings{'MailToAll'} = $new->cgp_mailtoall + $settings{'MailToAll'} = ( $new->cgp_mailtoall ? 'YES':'NO' ) if $old->cgp_mailtoall ne $new->cgp_mailtoall; - $settings{'AddMailTrailer'} = $new->cgp_addmailtrailer + $settings{'AddMailTrailer'} = ( $new->cgp_addmailtrailer ? 'YES':'NO' ) if $old->cgp_addmailtrailer ne $new->cgp_addmailtrailer; - #XXX phase 2: pwdallowed, passwordrecovery #XXX phase 3: archive messages, mailing lists if ( keys %settings ) { diff --git a/FS/FS/svc_acct.pm b/FS/FS/svc_acct.pm index 6e7fb91df..954d03051 100644 --- a/FS/FS/svc_acct.pm +++ b/FS/FS/svc_acct.pm @@ -1111,12 +1111,14 @@ sub check { || $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') + #settings || $self->ut_alphasn('cgp_rulesallowed') || $self->ut_enum('cgp_rpopallowed', [ '', 'Y' ]) || $self->ut_enum('cgp_mailtoall', [ '', 'Y' ]) || $self->ut_enum('cgp_addmailtrailer', [ '', 'Y' ]) + #preferences + || $self->ut_alphasn('cgp_deletemode') + || $self->ut_alphan('cgp_emptytrash') ; return $error if $error; diff --git a/httemplate/edit/svc_acct.cgi b/httemplate/edit/svc_acct.cgi index 04c442a30..35c9006f6 100755 --- a/httemplate/edit/svc_acct.cgi +++ b/httemplate/edit/svc_acct.cgi @@ -335,6 +335,14 @@ Service # <% $svcnum ? "$svcnum" : " (NEW)" %>
% #preferences + <% include('/elements/tr-checkbox.html', + 'label' => 'Password recovery', + 'field' => 'password_recover', + 'curr_value' => $svc_acct->password_recover, + 'value' => 'Y', + ) + %> + <% include('/elements/tr-select.html', 'label' => 'Allowed mail rules', 'field' => 'cgp_rulesallowed', @@ -517,9 +525,11 @@ if ( $cgi->param('error') ) { $part_svc=qsearchs('part_svc',{'svcpart'=>$svcpart}); die "No part_svc entry!" unless $part_svc; - $svc_acct = new FS::svc_acct({svcpart => $svcpart}); + $svc_acct = new FS::svc_acct({svcpart => $svcpart}); + + $svcnum=''; - $svcnum=''; + $svc_acct->password_recover('Y'); #default. hmm. } else { #editing diff --git a/httemplate/view/svc_acct/basics.html b/httemplate/view/svc_acct/basics.html index 9fc94488a..f6bdede32 100644 --- a/httemplate/view/svc_acct/basics.html +++ b/httemplate/view/svc_acct/basics.html @@ -87,7 +87,8 @@ <% include('/view/elements/tr.html', label=>'File size limit', value=>$svc_acct->file_maxsize ) %> -%#XXX password recovery + <% include('/view/elements/tr.html', label=>'Password recovery', + value=>$svc_acct->password_recover ? 'YES' : 'NO' ) %> <% include('/view/elements/tr.html', label=>'Allowed mail rules', value=>$svc_acct->cgp_rulesallowed || 'default (No)') %> -- 2.11.0