summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xsamba_wizard/Samba.pm81
1 files changed, 73 insertions, 8 deletions
diff --git a/samba_wizard/Samba.pm b/samba_wizard/Samba.pm
index 224c9016..1ebdcdfc 100755
--- a/samba_wizard/Samba.pm
+++ b/samba_wizard/Samba.pm
@@ -122,6 +122,7 @@ my %share = (
1 => N('Add - add a share'),
2 => N('Remove - remove a share'),
3 => N('Modify - modify a share'),
+ 4 => N('CDrom - share a CDrom'),
);
my @yesorno = qw(yes no);
@@ -250,11 +251,13 @@ $o->{pages} = {
return 'choose_share' }
elsif ($o->{var}{wiz_share} == 3) {
return 'choose_share' }
+ elsif ($o->{var}{wiz_share} == 4) {
+ return 'add_cdrom_share' }
},
no_back => 1,
},
choose_share => {
- name => N('Modify a share'),
+ name => N('Manage wich share ?') . "\n\n" . N('Please choose the share you want to manage.'),
pre => \&list_all_shares,
post => sub {
if ($o->{var}{wiz_share} == 2) {
@@ -264,11 +267,17 @@ $o->{pages} = {
}
},
data => [
- { label => N('Choose share you want to modifie:'), val => \$o->{var}{wiz_selected_share}, fixed_list => \@listshare },
+ { label => N('Choose share you want to manage:'), val => \$o->{var}{wiz_selected_share}, fixed_list => \@listshare },
],
+ complete => sub {
+ if ($o->{var}{wiz_selected_share} =~ /cdrom/ || $o->{var}{wiz_share} == 2) {
+ $::in->ask_warn(N('Error'), N('Can\'t modify cdrom share, please choose another share.'));
+ return 1;
+ }
+ },
},
delete_share => {
- name => N('Delete a share'),
+ name => N('Remove a share ?'),
pre => sub {
my $dshare = $o->{var}{wiz_selected_share};
$o->{var}{wiz_selected_share_comment} = $samba->{$dshare}{comment};
@@ -336,6 +345,34 @@ $o->{pages} = {
},
next => 'add_share_options',
},
+ add_cdrom_share => {
+ name => N('Add a CDROM share'),
+ pre => sub {
+ if ($samba->{cdrom}{comment}) {
+ $o->{var}{wiz_cdrom_comment} = $samba->{cdrom}{comment};
+ } else {
+ $o->{var}{wiz_cdrom_comment} = "%L CDrom";
+ }
+ if ($samba->{cdrom}{path}) {
+ $o->{var}{wiz_cdrom_path} = $samba->{cdrom}{path}
+ } else {
+ $o->{var}{wiz_cdrom_path} = "/mnt/cdrom";
+ }
+ $o->{var}{wiz_cdrom_browseable} = "yes";
+ $o->{var}{wiz_cdrom_pre} = "/bin/mount /mnt/cdrom";
+ $o->{var}{wiz_cdrom_post} = "/bin/umount /mnt/cdrom";
+ $o->{var}{wiz_cdrom_public} = "yes";
+ },
+ data => [
+ { label => N('Comment:'), fixed_val => \$o->{var}{wiz_cdrom_comment} },
+ { label => N('Cdrom path:'), fixed_val => \$o->{var}{wiz_cdrom_path} },
+ { label => N('Browseable:'), fixed_val => \$o->{var}{wiz_cdrom_browseable} },
+ { label => N('Root preexec:'), fixed_val => \$o->{var}{wiz_cdrom_pre} },
+ { label => N('Root postexec:'), fixed_val => \$o->{var}{wiz_cdrom_post} },
+ { label => N('Public:'), fixed_val => \$o->{var}{wiz_cdrom_public} },
+ ],
+ next => 'summary_addcdromshare',
+ },
add_share_options => {
name => N('Add a share') . "\n" . N('If you doesn\'t want to use one this options, leave it blanck.'),
pre => sub {
@@ -594,7 +631,7 @@ $o->{pages} = {
next => 'summary',
},
summary_modify => {
- name => N('Summary modify a share'),
+ name => N('Summary modify a share') . "\n\n" . N('If you really want to modify this share, click the Next button or use the Back button.'),
data => [
{ label => N('Name of the share:'), fixed_val => \$o->{var}{wiz_share_name} },
{ label => N('Comment:'), fixed_val => \$o->{var}{wiz_share_comment} },
@@ -608,8 +645,21 @@ $o->{pages} = {
post => \&do_it_modify_share,
next => 'end_modify_share',
},
+ summary_addcdromshare => {
+ name => N('CDROM') . "\n\n" . N('If you really want to share a CDROM, click the Next button or use the Back button.'),
+ post => \&do_it_add_cdromshare,
+ data => [
+ { label => N('Comment:'), fixed_val => \$o->{var}{wiz_cdrom_comment} },
+ { label => N('Cdrom path:'), fixed_val => \$o->{var}{wiz_cdrom_path} },
+ { label => N('Browseable:'), fixed_val => \$o->{var}{wiz_cdrom_browseable} },
+ { label => N('Root preexec:'), fixed_val => \$o->{var}{wiz_cdrom_pre} },
+ { label => N('Root postexec:'), fixed_val => \$o->{var}{wiz_cdrom_post} },
+ { label => N('Public:'), fixed_val => \$o->{var}{wiz_cdrom_public} },
+ ],
+ next => 'end_add_share',
+ },
summary_addshare => {
- name => N('Summary add share'),
+ name => N('Summary add share') . "\n\n" . N('If you really want to add this this share, click the Next button or use the Back button.'),
post => \&do_it_add_share,
data => [
{ label => N('Name of the share:'), fixed_val => \$o->{var}{wiz_addshare_name} },
@@ -624,7 +674,10 @@ $o->{pages} = {
next => 'end_add_share',
},
summary_delete => {
- name => N('Summary remove a share'),
+ name => N('Summary remove a share') . "\n\n" . N('If you really want to remove this share, click the Next button or use the Back button.'),
+ data => [
+ { label => N('Name of the share to delete:'), fixed_val => \$o->{var}{wiz_selected_share} },
+ ],
post => \&do_it_remove_share,
next => 'end_delete_share',
},
@@ -747,8 +800,6 @@ sub list_all_shares() {
push @listshare, $clef;
}
}
-# print "------------- \n";
-# foreach (@listshare) { print "$_\n"; }
return @listshare;
}
@@ -854,6 +905,20 @@ sub do_it_modify_share {
check_started('smbd');
}
+sub do_it_add_cdromshare {
+ $::testing and return;
+ $samba->{cdrom}{comment} = $o->{var}{wiz_cdrom_comment};
+ $samba->{cdrom}{path} = $o->{var}{wiz_cdrom_path};
+ $samba->{cdrom}{path} = $o->{var}{wiz_cdrom_path};
+ $samba->{cdrom}{browseable} = $o->{var}{wiz_cdrom_browseable};
+ $samba->{cdrom}{'root preexec'} = $o->{var}{wiz_cdrom_pre};
+ $samba->{cdrom}{'root postexec'} = $o->{var}{wiz_cdrom_post};
+ $samba->{cdrom}{public} = $o->{var}{wiz_cdrom_public};
+
+ write_conf_restart_smb();
+ check_started('smbd');
+}
+
sub do_it_add_share {
$::testing and return;
my $share = $o->{var}{wiz_addshare_name};