summaryrefslogtreecommitdiffstats
path: root/ftp_wizard/Proftpd.pm
diff options
context:
space:
mode:
authorAntoine Ginies <aginies@mandriva.com>2004-01-13 14:48:05 +0000
committerAntoine Ginies <aginies@mandriva.com>2004-01-13 14:48:05 +0000
commita8fc961f22b40950975ca84e9acdb2ff691779af (patch)
tree5ec70bb8aa969bb17509b30fd4937b938d3f3f30 /ftp_wizard/Proftpd.pm
parent776936f45d38c2362720ab8497561d8ce9e62997 (diff)
downloaddrakwizard-a8fc961f22b40950975ca84e9acdb2ff691779af.tar
drakwizard-a8fc961f22b40950975ca84e9acdb2ff691779af.tar.gz
drakwizard-a8fc961f22b40950975ca84e9acdb2ff691779af.tar.bz2
drakwizard-a8fc961f22b40950975ca84e9acdb2ff691779af.tar.xz
drakwizard-a8fc961f22b40950975ca84e9acdb2ff691779af.zip
new default configuration file, and add new options in wizard
Diffstat (limited to 'ftp_wizard/Proftpd.pm')
-rwxr-xr-xftp_wizard/Proftpd.pm159
1 files changed, 117 insertions, 42 deletions
diff --git a/ftp_wizard/Proftpd.pm b/ftp_wizard/Proftpd.pm
index 62e212cd..ad42e864 100755
--- a/ftp_wizard/Proftpd.pm
+++ b/ftp_wizard/Proftpd.pm
@@ -5,6 +5,7 @@
# Copyright (C) 2003 Mandrakesoft
#
# Author: Florent Villard <warly@mandrakesoft.com>
+# aginies <aginies _ateuh_ mandrakesoft.com>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -29,36 +30,58 @@ require MDK::Wizard::Wizcommon;
my $wiz = new MDK::Wizard::Wizcommon;
-my $o = {
- name => N("FTP wizard"),
- var => {
- wiz_ftp_external => '',
- wiz_ftp_anon => '',
- wiz_ftp_home => ''
- },
- needed_rpm => [ 'proftpd', 'proftpd-anonymous' ],
- defaultimage => "$ENV{__WIZ_HOME__}ftp_wizard/images/FTP.png"
- };
+my $o = {
+ name => N("FTP wizard"),
+ var => {
+ wiz_ftp_external => '',
+# wiz_ftp_anon => '',
+# wiz_ftp_home => '',
+ wiz_root_login => '',
+ wiz_server_admin => '',
+ wiz_default_root => '',
+ wiz_ftp_resume => '',
+ wiz_ftp_fxp => '',
+ },
+ needed_rpm => [ 'proftpd', 'proftpd-anonymous' ],
+ defaultimage => "$ENV{__WIZ_HOME__}ftp_wizard/images/FTP.png"
+ };
$o->{pages} = {
- welcome => {
- name => N("FTP Server Configuration Wizard") . "\n\n" . N("This wizard will help you configuring the FTP Server for your network."),
- no_back => 1,
- post => \&check,
- next => 'config'
- },
- config => {
- name => N("FTP Server") . "\n\n" . N("Your server can act as an FTP Server toward your internal network (intranet) and as an FTP Server for the Internet.") . "\n\n" . N("Select the kind of FTP service you want to activate:") . "\n\n" . N("Don't check any box if you don't want to activate your FTP Server."),
- pre => sub {
- $o->{var}{wiz_ftp_internal} ||= 1;
- $o->{var}{wiz_ftp_external} ||= 0;
- },
- data => [
- { text => N("Enable the FTP Server for the Intranet"), type => 'bool', val => \$o->{var}{wiz_ftp_internal} },
- { text => N("Enable the FTP Server for the Internet"), type => 'bool', val => \$o->{var}{wiz_ftp_external} },
- ],
- next => 'summary'
+ welcome => {
+ name => N("FTP Server Configuration Wizard") . "\n\n" . N("This wizard will help you configuring the FTP Server for your network."),
+ no_back => 1,
+ post => \&check,
+ next => 'config'
+ },
+ config => {
+ name => N("FTP Server") . "\n\n" . N("Your server can act as an FTP Server toward your internal network (intranet) and as an FTP Server for the Internet.") . "\n\n" . N("Select the kind of FTP service you want to activate:") . "\n\n" . N("Don't check any box if you don't want to activate your FTP Server."),
+ pre => sub {
+ $o->{var}{wiz_ftp_internal} ||= 1;
+ $o->{var}{wiz_ftp_external} ||= 0;
+ },
+ data => [
+ { label => N("Enable the FTP Server for the Intranet"), type => 'bool', val => \$o->{var}{wiz_ftp_internal} },
+ { label => N("Enable the FTP Server for the Internet"), type => 'bool', val => \$o->{var}{wiz_ftp_external} },
+ ],
+ next => 'options'
},
+ options => {
+ name => N("Ftp Proftpd server options") . "\n\n" . N("Permit root login: allow root to log on ftp server.") . "\n" . N("Admin Email: email address of FTP maintainer.") . "\n" . N("Chroot Home user: Block user in their home directory.") . "\n\n" . N("allow FTP resume: allow resume upload or download on ftp server.") . "\n" . N("Allow FXP: allow file transfert via other ftp."),
+ pre => sub {
+ $o->{var}{wiz_root_login} ||= 0;
+ $o->{var}{wiz_default_root} ||= 1;
+ $o->{var}{wiz_ftp_resume} ||= 1;
+ $o->{var}{wiz_ftp_fxp} ||= 0;
+ },
+ data => [
+ { label => N("Admin email"), val => \$o->{var}{wiz_server_admin} },
+ { label => N("Permit root Login"), type => 'bool', val => \$o->{var}{wiz_root_login} },
+ { label => N("Chroot Home user"), type => 'bool', val => \$o->{var}{wiz_default_root} },
+ { label => N("Allow FTP resume"), type => 'bool', val => \$o->{var}{wiz_ftp_resume} },
+ { label => N("Allow FXP"), type => 'bool', val => \$o->{var}{wiz_ftp_fxp} },
+ ],
+ next => 'summary',
+ },
warning_dhcp => {
name => N("Warning.") . "\n\n" . N("Warning\nYou are in dhcp, server may not work with your configuration."),
ignore => 1,
@@ -69,23 +92,33 @@ $o->{pages} = {
ignore => 1,
next => 'config'
},
- summary => {
- name => N("Configuring the FTP Server") . "\n\n" . N("The wizard collected the following parameters
+ summary => {
+ name => N("Configuring the FTP Server") . "\n\n" . N("The wizard collected the following parameters
needed to configure your FTP Server") . "\n\n" . N("To accept these values, and configure your server, click the Next button or use the Back button to correct them"),
- pre => sub {
- $o->{var}{internal} = $o->{var}{wiz_ftp_internal} ? N("enabled") : N("disabled");
- $o->{var}{external} = $o->{var}{wiz_ftp_external} ? N("enabled") : N("disabled")
- },
- data => [
- { label => N("Intranet FTP Server:"), fixed_val => \$o->{var}{internal} },
- { label => N("Internet FTP Server:"), fixed_val => \$o->{var}{external} },
- ],
- post => \&do_it,
- next => 'end'
- },
+ pre => sub {
+ $o->{var}{internal} = $o->{var}{wiz_ftp_internal} ? N("enabled") : N("disabled");
+ $o->{var}{external} = $o->{var}{wiz_ftp_external} ? N("enabled") : N("disabled");
+ $o->{var}{rootlogin} = $o->{var}{wiz_root_login} ? N("enabled") : N("disabled");
+ $o->{var}{defaultroot} = $o->{var}{wiz_default_root} ? N("enabled") : N("disabled");
+ $o->{var}{ftpresume} = $o->{var}{wiz_ftp_resume} ? N("enabled") : N("disabled");
+ $o->{var}{fxp} = $o->{var}{wiz_ftp_fxp} ? N("enabled") : N("disabled");
+ },
+ data => [
+ { label => N("Intranet FTP Server:"), fixed_val => \$o->{var}{internal} },
+ { label => N("Internet FTP Server:"), fixed_val => \$o->{var}{external} },
+ { label => N("Admin email"), fixed_val => \$o->{var}{wiz_server_admin} },
+ { label => N("Permit root Login"), fixed_val => \$o->{var}{rootlogin} },
+ { label => N("Chroot Home user"), fixed_val => \$o->{var}{defaultroot} },
+ { label => N("Allow FTP resume"), fixed_val => \$o->{var}{ftpresume} },
+ { label => N("Allow FXP"), fixed_val => \$o->{var}{fxp} },
+ ],
+ post => \&do_it,
+ next => 'end'
+ },
end => {
- name => N("Congratulations") . "\n\n" . N("The wizard successfully configured your Intranet/Internet FTP Server"),
+ name => N("Congratulations") . "\n\n" . N("The wizard successfully configured your Intranet/Internet FTP Server"),
end => 1,
+ no_back => 1,
next => 0
},
};
@@ -148,6 +181,19 @@ sub print_anonymous() {
';
}
+sub change_options {
+ my ($var, $var_in_conf) = @_;
+ my $file = "/etc/proftpd.conf";
+ my $status;
+ print "now in change options\n";
+ if ($var == 1) { $status = "on" } else { $status = "off" }
+ if ( any { /^$var_in_conf/ } cat_($file)) {
+ substInFile { s/$var_in_conf.*/$var_in_conf $status/ } $file;
+ } else {
+ append_to_file($file, "$var_in_conf $status\n")
+ }
+}
+
sub do_it {
$::testing and return;
my $wiz_ftp_internal = $o->{var}{wiz_ftp_external} ? 1 : true $o->{var}{wiz_ftp_internal};
@@ -230,7 +276,36 @@ sub do_it {
}
} $file;
}
- if (services::is_service_running('proftpd')) {
+
+ # options
+ # wiz_root_login wiz_server_admin wiz_default_root wiz_ftp_resume wiz_ftp_fxp
+ if ($o->{var}{wiz_server_admin}) {
+ if (any { /^ServerAdmin/ } cat_($file)) {
+ substInFile { s/ServerAdmin.*/ServerAdmin $o->{var}{wiz_server_admin}/ } $file
+ } else {
+ append_to_file($file, "ServerAdmin $o->{var}{wiz_server_admin}")
+ }
+ } else { substInFile { s/ServerAdmin.*// } $file }
+
+ change_options($o->{var}{wiz_root_login}, "RootLogin");
+ change_options($o->{var}{wiz_ftp_fxp}, "AllowForeignAddress");
+ # in ftp resume there is two options (store or retrieve)
+ change_options($o->{var}{wiz_ftp_resume}, "AllowStoreRestart");
+ change_options($o->{var}{wiz_ftp_resume}, "AllowRetrieveRestart");
+
+ my $data;
+ if ($o->{var}{wiz_default_root} == 1) {
+ $data = "DefaultRoot ~"
+ } else {
+ $data = ""
+ }
+ if ( any { /^DefaultRoot/ } cat_($file)) {
+ substInFile { s/DefaultRoot.*/$data/ } $file;
+ } else {
+ append_to_file($file, "$data\n");
+ }
+
+ if (services::is_service_running('proftpd')) {
services::restart('proftpd')
} else {
services::start('proftpd')