summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xsamba_wizard/Samba.pm79
1 files changed, 58 insertions, 21 deletions
diff --git a/samba_wizard/Samba.pm b/samba_wizard/Samba.pm
index 8269a105..f02949fd 100755
--- a/samba_wizard/Samba.pm
+++ b/samba_wizard/Samba.pm
@@ -37,6 +37,7 @@ my $DOMAINNAME = chomp_(`dnsdomainname`);
my $SHORTHOSTNAME = chomp_(`hostname -s`);
my $wiz_samba_etc = "/etc/sysconfig/wizard_samba";
my @listshare;
+my @listprinters;
my $o = {
name => 'Samba wizard',
@@ -401,7 +402,7 @@ $o->{pages} = {
if ($samba->{global}{'ldap admin dn'})
{ $o->{var}{wiz_ldap_admin_dn} ||= $samba->{global}{'ldap admin dn'}
} else {
- $o->{var}{wiz_ldap_admin_dn} = "root";
+ $o->{var}{wiz_ldap_admin_dn} = "cn=Manager";
}
if ($samba->{global}{'passdb backend'}) {
$o->{var}{wiz_passdb_backend} = $samba->{global}{'passdb backend'}
@@ -503,8 +504,8 @@ $o->{pages} = {
$o->{var}{wiz_do_homes} ||= exists $samba->{homes};
},
data => [
- { text => N('Enable file sharing area'), type => 'bool', val => \$o->{var}{wiz_do_file_sharing} },
- { text => N('Enable Server Printer Sharing'), type => 'bool', val => \$o->{var}{wiz_do_printer_sharing} },
+ { text => N('Enable public file sharing area'), type => 'bool', val => \$o->{var}{wiz_do_file_sharing} },
+ { text => N('Enable server printer sharing'), type => 'bool', val => \$o->{var}{wiz_do_printer_sharing} },
{ text => N('Make home directories available for their owners'), type => 'bool', val => \$o->{var}{wiz_do_homes} },
],
post => sub {
@@ -697,9 +698,9 @@ $o->{pages} = {
},
data => [
{ label => N('Workgroup:'), fixed_val => \$o->{var}{wiz_workgroup} },
- { label => N('Server Banner:'), fixed_val => \$o->{var}{wiz_banner} },
- { label => N('File Sharing:'), fixed_val => \$o->{var}{file_sharing} },
- { label => N('Print Server:'), fixed_val => \$o->{var}{printer_sharing} },
+ { label => N('Server banner:'), fixed_val => \$o->{var}{wiz_banner} },
+ { label => N('Public file sharing:'), fixed_val => \$o->{var}{file_sharing} },
+ { label => N('Print server:'), fixed_val => \$o->{var}{printer_sharing} },
{ label => N('Home:'), fixed_val => \$o->{var}{shared_homes} },
],
post => \&do_it,
@@ -784,15 +785,26 @@ sub remove_printer {
delete $samba->{$printer};
}
+sub list_printers_smbconf() {
+ undef @listprinters;
+ foreach my $clef (keys %$samba) {
+ if ($samba->{$clef}{printable} =~ /yes/i) {
+ print "$clef is a printer\n";
+ push @listprinters, $clef;
+ }
+ }
+ return @listprinters;
+}
+
sub list_printers() {
- my @list if 0;
- return @list if @list;
- @list = sort grep /^(?!\#).+/, map {
- my ($printer) = split(':', $_);
- } cat_("/etc/printcap");
- if (@list) {
- @list
- } else { () }
+ my @list if 0;
+ return @list if @list;
+ @list = sort grep /^(?!\#).+/, map {
+ my ($printer) = split(':', $_);
+ } cat_("/etc/printcap");
+ if (@list) {
+ @list
+ } else { () }
}
sub list_all_shares() {
@@ -811,6 +823,7 @@ sub list_all_shares() {
sub printer_sharing() {
# create default sedction for printers with default value
+ $samba->{global}{'printer adm'} = "\@adm";
$samba->{printers};
$samba->{printers}{comment} = $o->{var}{wiz_printers_comment};
$samba->{printers}{browseable} = $o->{var}{wiz_printers_browseable};
@@ -832,8 +845,28 @@ sub printer_sharing() {
}
}
+sub priner_section() {
+ $samba->{'pdf-gen'};
+ $samba->{path} = "/var/tmp";
+ $samba->{'guest ok'} = "no";
+ $samba->{printable} = "yes";
+ $samba->{comment} = "PDF Generator (only valid users)";
+ $samba->{printing} = "bsd";
+ $samba->{'print command'} = "/usr/share/samba/scripts/print-pdf \"%s\" \"%H\" \"//%L/%u\" \"%m\" \"%I\" \"%J\" &";
+ $samba->{'lpq command'} = "/bin/true";
+}
+
+sub printdollar_section() {
+ $samba->{'print$'};
+ $samba->{path} = "/var/lib/samba/printers";
+ $samba->{browseable} = "yes";
+ $samba->{'write list'} = "\@adm root";
+ $samba->{'guest ok'} = "yes";
+ $samba->{inherit permissions} = "yes";
+}
+
sub global_special_options() {
- # detect Samab type 3 is standalone
+ # detect Samba type 3 is standalone
if ($o->{var}{wiz_type} == "3") {
exists $samba->{global}{'domain_master'} and delete $samba->{global}{'domain_master'};
$samba->{global}{'security'} = "share";
@@ -855,11 +888,12 @@ sub global_special_options() {
$samba->{global}{'passdb backend'} = $o->{var}{wiz_passdb_backend};
$samba->{global}{'ldap admin_dn'} = $o->{var}{wiz_ldap_admin_dn};
$samba->{global}{'ldap suffix'} = $o->{var}{wiz_ldap_suffix};
- }
+ } else {
# delete ldap options if exist
- exists $samba->{global}{'passdb backend'} and delete $samba->{global}{'passdb backend'};
- exists $samba->{global}{'ldap admin_dn'} and delete $samba->{global}{'ldap admin_dn'};
- exists $samba->{global}{'ldap suffix'} and delete $samba->{global}{'ldap suffix'};
+ exists $samba->{global}{'passdb backend'} and delete $samba->{global}{'passdb backend'};
+ exists $samba->{global}{'ldap admin_dn'} and delete $samba->{global}{'ldap admin_dn'};
+ exists $samba->{global}{'ldap suffix'} and delete $samba->{global}{'ldap suffix'};
+ }
}
}
@@ -1034,16 +1068,19 @@ sub do_it {
# share printers
if ($o->{var}{wiz_do_printer_sharing}) {
- standalone->explanations("Enabling printer sharing");
printer_sharing();
+ printer_section();
+ printdollar_section();
} else {
- standalone->explanations("Disabling printer sharing");
if ($o->{var}{wiz_box_list}) {
for(my $i; $i < @{$o->{var}{wiz_box_list}}; $i++) {
$o->{var}{list_printers}[$i] and remove_printer($o->{var}{list_printers}[$i]);
}
}
+ delete $samba->{global}{'printer adm'};
delete $samba->{printers};
+ delete $samba->{'print$'};
+ delete $samba->{'pdf-gen'};
}
write_conf_restart_smb();