X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;ds=sidebyside;f=FS%2FFS%2Fpart_export.pm;h=8423da299a7f238077c2a35c9fe0445e05b59699;hb=b5fa7c0c1953139f1fbe0dabf3930871646016b8;hp=01e71c0ed8eb510ecb886b32c49c9e7a2d1904cf;hpb=dc77b9285fd9bd9a9594b5d6abf82a5a69e1097c;p=freeside.git diff --git a/FS/FS/part_export.pm b/FS/FS/part_export.pm index 01e71c0ed..8423da299 100644 --- a/FS/FS/part_export.pm +++ b/FS/FS/part_export.pm @@ -274,10 +274,6 @@ sub check { ; return $error if $error; - $self->machine =~ /^([\w\-\.]*)$/ - or return "Illegal machine: ". $self->machine; - $self->machine($1); - $self->nodomain =~ /^(Y?)$/ or return "Illegal nodomain: ". $self->nodomain; $self->nodomain($1); @@ -472,18 +468,22 @@ sub _export_delete { return "_export_delete: unknown export type ". $self->exporttype; } -#fallbacks providing null operations +#call svcdb-specific fallbacks sub _export_suspend { my $self = shift; #warn "warning: _export_suspened unimplemented for". ref($self); - ''; + my $svc_x = shift; + my $new = $svc_x->clone_suspended; + $self->_export_replace( $new, $svc_x ); } sub _export_unsuspend { my $self = shift; #warn "warning: _export_unsuspend unimplemented for ". ref($self); - ''; + my $svc_x = shift; + my $old = $svc_x->clone_kludge_unsuspend; + $self->_export_replace( $svc_x, $old ); } =back @@ -580,13 +580,13 @@ tie my %shellcommands_options, 'Tie::IxHash', type =>'checkbox', }, 'suspend' => { label=>'Suspension command', - default=>'', + default=>'usermod -L $username', }, 'suspend_stdin' => { label=>'Suspension command STDIN', default=>'', }, 'unsuspend' => { label=>'Unsuspension command', - default=>'', + default=>'usermod -U $username', }, 'unsuspend_stdin' => { label=>'Unsuspension command STDIN', default=>'', @@ -702,12 +702,20 @@ tie my %sqlradius_options, 'Tie::IxHash', 'datasrc' => { label=>'DBI data source ' }, 'username' => { label=>'Database username' }, 'password' => { label=>'Database password' }, + 'ignore_accounting' => { + type => 'checkbox', + label=>'Ignore accounting records from this database' + }, ; tie my %sqlradius_withdomain_options, 'Tie::IxHash', 'datasrc' => { label=>'DBI data source ' }, 'username' => { label=>'Database username' }, 'password' => { label=>'Database password' }, + 'ignore_accounting' => { + type => 'checkbox', + label=>'Ignore accounting records from this database' + }, ; tie my %cyrus_options, 'Tie::IxHash', @@ -758,6 +766,24 @@ tie my %communigate_pro_options, 'Tie::IxHash', }, ; +tie my %communigate_pro_singledomain_options, 'Tie::IxHash', + 'port' => { label=>'Port number', default=>'106', }, + 'login' => { label=>'The administrator account name. The name can contain a domain part.', }, + 'password' => { label=>'The administrator account password.', }, + 'domain' => { label=>'Domain', }, + 'accountType' => { label=>'Type for newly-created accounts', + type=>'select', + options=>[qw( MultiMailbox TextMailbox MailDirMailbox )], + default=>'MultiMailbox', + }, + 'externalFlag' => { label=> 'Create accounts with an external (visible for legacy mailers) INBOX.', + type=>'checkbox', + }, + 'AccessModes' => { label=>'Access modes', + default=>'Mail POP IMAP PWD WebMail WebSite', + }, +; + tie my %bind_options, 'Tie::IxHash', #'machine' => { label=>'named machine' }, 'named_conf' => { label => 'named.conf location', @@ -881,6 +907,13 @@ tie my %forward_shellcommands_options, 'Tie::IxHash', }, ; +tie my %postfix_options, 'Tie::IxHash', + 'user' => { label=>'Remote username', default=>'root' }, + 'aliases' => { label=>'aliases file location', default=>'/etc/aliases' }, + 'virtual' => { label=>'virtual file location', default=>'/etc/postfix/virtual' }, + 'mydomain' => { label=>'local domain', default=>'' }, +; + #export names cannot have dashes... %exports = ( 'svc_acct' => { @@ -913,7 +946,7 @@ tie my %forward_shellcommands_options, 'Tie::IxHash', 'desc' => 'Real-time export via remote SSH (i.e. useradd, userdel, etc.)', 'options' => \%shellcommands_options, 'nodomain' => 'Y', - 'notes' => 'Run remote commands via SSH. Usernames are considered unique (also see shellcommands_withdomain). You probably want this if the commands you are running will not accept a domain as a parameter. You will need to setup SSH for unattended operation.

Use these buttons for some useful presets:The following variables are available for interpolation (prefixed with new_ or old_ for replace operations): ', + 'notes' => 'Run remote commands via SSH. Usernames are considered unique (also see shellcommands_withdomain). You probably want this if the commands you are running will not accept a domain as a parameter. You will need to setup SSH for unattended operation.

Use these buttons for some useful presets:The following variables are available for interpolation (prefixed with new_ or old_ for replace operations): ', }, 'shellcommands_withdomain' => { @@ -978,7 +1011,14 @@ tie my %forward_shellcommands_options, 'Tie::IxHash', 'communigate_pro' => { 'desc' => 'Real-time export to a CommuniGate Pro mail server', 'options' => \%communigate_pro_options, - 'notes' => 'Real time export to a mail server. The CommuniGate Pro Perl Interface must be installed as CGP::CLI.', + 'notes' => 'Real time export to a CommuniGate Pro mail server. The CommuniGate Pro Perl Interface must be installed as CGP::CLI.', + }, + + 'communigate_pro_singledomain' => { + 'desc' => 'Real-time export to a CommuniGate Pro mail server, one domain only', + 'options' => \%communigate_pro_singledomain_options, + 'nodomain' => 'Y', + 'notes' => 'Real time export to a CommuniGate Pro mail server. This is an unusual export to CommuniGate Pro that forces all accounts into a single domain. As CommuniGate Pro supports multiple domains, unless you have a specific reason for using this export, you probably want to use the communigate_pro export instead. The CommuniGate Pro Perl Interface must be installed as CGP::CLI.', }, }, @@ -1024,7 +1064,7 @@ tie my %forward_shellcommands_options, 'Tie::IxHash', 'desc' => 'Real-time export to SQL-backed mail server', 'options' => \%sqlmail_options, #'nodomain' => 'Y', - 'notes' => 'Database schema can be made to work with Courier IMAP and Exim. Others could work but are untested. (...extended description from pc-intouch?...)', + 'notes' => 'Database schema can be made to work with Courier IMAP and Exim. Others could work but are untested. (...extended description from fire2wire?...)', }, 'forward_shellcommands' => { @@ -1032,6 +1072,14 @@ tie my %forward_shellcommands_options, 'Tie::IxHash', 'options' => \%forward_shellcommands_options, 'notes' => 'Run remote commands via SSH, for forwards. You will need to setup SSH for unattended operation.

Use these buttons for some useful presets:The following variables are available for interpolation (prefixed with new_ or old_ for replace operations): ', }, + + 'postfix' => { + 'desc' => 'Real-time export to Postfix text files', + 'options' => \%postfix_options, + #'nodomain' => 'Y', + 'notes' => 'Batch export of Postfix aliases and virtual files. File::Rsync must be installed. Run bin/postfix.export to export the files.', + }, + }, 'svc_www' => { @@ -1055,6 +1103,10 @@ tie my %forward_shellcommands_options, 'Tie::IxHash', 'notes' => '', }, }, + + 'svc_external' => { + }, + ); =back