]> git.ipfire.org Git - ipfire-2.x.git/blame - html/cgi-bin/samba.cgi
samba: Hard-code server string
[ipfire-2.x.git] / html / cgi-bin / samba.cgi
CommitLineData
5e773594 1#!/usr/bin/perl
70df8302
MT
2###############################################################################
3# #
4# IPFire.org - A linux based firewall #
725254ef 5# Copyright (C) 2005-2013 IPFire Team <info@ipfire.org> #
70df8302
MT
6# #
7# This program is free software: you can redistribute it and/or modify #
8# it under the terms of the GNU General Public License as published by #
9# the Free Software Foundation, either version 3 of the License, or #
10# (at your option) any later version. #
11# #
12# This program is distributed in the hope that it will be useful, #
13# but WITHOUT ANY WARRANTY; without even the implied warranty of #
14# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
15# GNU General Public License for more details. #
16# #
17# You should have received a copy of the GNU General Public License #
18# along with this program. If not, see <http://www.gnu.org/licenses/>. #
19# #
20###############################################################################
5e773594
MT
21
22use strict;
23# enable only the following on debugging purpose
cb5e9c6c
CS
24#use warnings;
25#use CGI::Carp 'fatalsToBrowser';
5e773594
MT
26
27require '/var/ipfire/general-functions.pl';
28require "${General::swroot}/lang.pl";
29require "${General::swroot}/header.pl";
30
31my %sambasettings = ();
44254afd 32my %cgisettings = ();
5e773594
MT
33my %checked = ();
34my %netsettings = ();
97de2cae 35my %ovpnsettings = ();
f2fdd0c1
CS
36my %color = ();
37my %mainsettings = ();
5e773594
MT
38my $message = "";
39my $errormessage = "";
c41c2eb4 40
fa7be659 41my @Logs = qx(ls /var/log/samba/);
c9e1c143 42my $Log =$Lang::tr{'no log selected'};
c41c2eb4
CS
43
44my $Status = qx(/usr/local/bin/sambactrl smbstatus);
160fc7b1 45$Status = &Header::cleanhtml($Status);
c41c2eb4 46
1ee8bf5d
MT
47my $userentry = "";
48my @user = ();
49my @userline = ();
c41c2eb4 50my $userfile = "${General::swroot}/samba/private/smbpasswd";
5e773594 51my %selected= () ;
c41c2eb4
CS
52
53my $defaultoption= "[Share]\npath = /var/ipfire/samba/share1\ncomment = Share - Public Access\nbrowseable = yes\nwriteable = yes\ncreate mask = 0777\ndirectory mask = 0777\npublic = yes\nforce user = samba";
54my $defaultprinter= "[Printer]\ncomment = Printer public\npath = /var/spool/cups\nprinting = sysvn\nprintcap = lpstat\npublic = yes\nwritable = no\nprintable = yes";
55my %printer = ();
56my %shares = ();
57
5e773594 58&General::readhash("${General::swroot}/ethernet/settings", \%netsettings);
97de2cae 59&General::readhash("${General::swroot}/ovpn/settings", \%ovpnsettings);
f2fdd0c1
CS
60&General::readhash("${General::swroot}/main/settings", \%mainsettings);
61&General::readhash("/srv/web/ipfire/html/themes/".$mainsettings{'THEME'}."/include/colors.txt", \%color);
5e773594 62
f57976de
CS
63my @ovpnnetwork = split(/\//,$ovpnsettings{'DOVPN_SUBNET'});
64my @ovpnip = split(/\./,$ovpnnetwork[0]);
65$ovpnip[3]=$ovpnip[3]+1;
66
14cc7eac 67############################################################################################################################
32f77a0b 68############################################# Samba Dienste fr Statusberprfung ##########################################
14cc7eac 69
0ffbb688 70my %servicenames = ('SMB Daemon' => 'smbd', 'NetBIOS Nameserver' => 'nmbd', 'Winbind Daemon' => 'winbindd');
5e773594
MT
71
72&Header::showhttpheaders();
73
14cc7eac 74############################################################################################################################
32f77a0b 75#################################### Initialisierung von Samba Variablen fr global Settings ###############################
14cc7eac 76
5e773594 77$sambasettings{'WORKGRP'} = 'homeip.net';
fa7be659 78$sambasettings{'NETBIOSNAME'} = 'IPFire';
1ee8bf5d 79$sambasettings{'INTERFACES'} = '';
c771fe7c 80$sambasettings{'SECURITY'} = 'user';
c41c2eb4 81$sambasettings{'OSLEVEL'} = '33';
97de2cae
MT
82$sambasettings{'GREEN'} = 'on';
83$sambasettings{'BLUE'} = 'off';
84$sambasettings{'ORANGE'} = 'off';
85$sambasettings{'VPN'} = 'off';
fa7be659
CS
86$sambasettings{'WINSSRV'} = '';
87$sambasettings{'WINSSUPPORT'} = 'on';
88$sambasettings{'REMOTEANNOUNCE'} = '';
2a1f6aa7 89$sambasettings{'REMOTESYNC'} = '';
32f77a0b 90$sambasettings{'PASSWORDSYNC'} = 'off';
c9e1c143 91$sambasettings{'OTHERINTERFACES'} = '127.0.0.1';
1ee8bf5d 92$sambasettings{'GUESTACCOUNT'} = 'samba';
725254ef 93$sambasettings{'MAPTOGUEST'} = 'Bad User';
c9e1c143 94$sambasettings{'LOGLEVEL'} = '3 passdb:5 auth:5 winbind:2';
c9f3d846
AF
95$sambasettings{'WIDELINKS'} = 'on';
96$sambasettings{'UNIXEXTENSION'} = 'off';
3cf764f3 97$sambasettings{'SMB2'} = 'on';
5e773594 98### Values that have to be initialized
fa7be659 99$sambasettings{'ACTION'} = '';
c41c2eb4
CS
100### Samba CUPS Variablen
101$sambasettings{'LOADPRINTERS'} = 'Yes';
102$sambasettings{'PRINTING'} = 'cups';
103$sambasettings{'PRINTCAPNAME'} = 'cups';
c9e1c143 104my $LOGLINES = '50';
5e773594 105
32f77a0b
CS
106################################################## Samba PDC Variablen #####################################################
107
108$sambasettings{'LOCALMASTER'} = 'off';
109$sambasettings{'DOMAINMASTER'} = 'off';
110$sambasettings{'PREFERREDMASTER'} = 'off';
111my $PDCOPTIONS = `cat ${General::swroot}/samba/pdc`;
112
113
114############################################################################################################################
115
5e773594
MT
116&General::readhash("${General::swroot}/samba/settings", \%sambasettings);
117&Header::getcgihash(\%sambasettings);
118
69addbb8 119sub refreshpage{&Header::openbox( 'Waiting', 1, "<meta http-equiv='refresh' content='1;'>" );print "<center><img src='/images/clock.gif' alt='' /><br/><font color='red'>$Lang::tr{'pagerefresh'}</font></center>";&Header::closebox();}
63d4db83 120
c9f3d846 121if (($sambasettings{'WIDELINKS'} eq 'on') & ($sambasettings{'UNIXEXTENSION'} eq 'on'))
82f53e0a 122 {$errormessage = "$errormessage<br />Don't enable 'Wide links' and 'Unix extension' at the same time"; }
c9f3d846 123
5e773594
MT
124&Header::openpage('Samba', 1, '');
125&Header::openbigbox('100%', 'left', '', $errormessage);
126
127############################################################################################################################
fa7be659 128############################################# Samba Rootskript aufrufe fr SU-Actions #######################################
14cc7eac 129
63d4db83
CS
130if ($sambasettings{'ACTION'} eq 'smbuserdisable'){system("/usr/local/bin/sambactrl smbuserdisable $sambasettings{'NAME'}");refreshpage();}
131if ($sambasettings{'ACTION'} eq 'smbuserenable'){system("/usr/local/bin/sambactrl smbuserenable $sambasettings{'NAME'}");refreshpage();}
132if ($sambasettings{'ACTION'} eq 'smbuseradd'){system("/usr/local/bin/sambactrl smbuseradd $sambasettings{'USERNAME'} $sambasettings{'PASSWORD'} $sambasettings{'GROUP'} $sambasettings{'SHELL'}");refreshpage();}
133if ($sambasettings{'ACTION'} eq 'smbpcadd'){system("/usr/local/bin/sambactrl smbpcadd $sambasettings{'PCNAME'} $sambasettings{'GROUP'} $sambasettings{'SHELL'}");refreshpage();}
134if ($sambasettings{'ACTION'} eq 'smbchangepw'){system("/usr/local/bin/sambactrl smbchangepw $sambasettings{'USERNAME'} $sambasettings{'PASSWORD'}");refreshpage();}
135if ($sambasettings{'ACTION'} eq 'smbrestart'){system("/usr/local/bin/sambactrl smbrestart");refreshpage();}
136if ($sambasettings{'ACTION'} eq 'smbstart'){system("/usr/local/bin/sambactrl smbstart");refreshpage();}
137if ($sambasettings{'ACTION'} eq 'smbstop'){system("/usr/local/bin/sambactrl smbstop");refreshpage();}
138if ($sambasettings{'ACTION'} eq 'smbreload'){system("/usr/local/bin/sambactrl smbreload");refreshpage();}
fa7be659
CS
139if ($sambasettings{'ACTION'} eq 'globalresetyes')
140 {
141 system("/usr/local/bin/sambactrl smbglobalreset");
142 $sambasettings{'WORKGRP'} = 'homeip.net';
143 $sambasettings{'NETBIOSNAME'} = 'IPFire';
fa7be659 144 $sambasettings{'INTERFACES'} = '';
c771fe7c 145 $sambasettings{'SECURITY'} = 'user';
fa7be659
CS
146 $sambasettings{'OSLEVEL'} = '65';
147 $sambasettings{'GREEN'} = 'on';
148 $sambasettings{'BLUE'} = 'off';
149 $sambasettings{'ORANGE'} = 'off';
150 $sambasettings{'VPN'} = 'off';
151 $sambasettings{'WINSSRV'} = '';
152 $sambasettings{'WINSSUPPORT'} = 'on';
153 $sambasettings{'REMOTEANNOUNCE'} = '';
2a1f6aa7 154 $sambasettings{'REMOTESYNC'} = '';
fa7be659 155 $sambasettings{'PASSWORDSYNC'} = 'off';
c9e1c143 156 $sambasettings{'OTHERINTERFACES'} = '127.0.0.1';
fa7be659 157 $sambasettings{'GUESTACCOUNT'} = 'samba';
725254ef 158 $sambasettings{'MAPTOGUEST'} = 'Bad User';
c9e1c143 159 $sambasettings{'LOGLEVEL'} = '3 passdb:5 auth:5 winbind:2';
c41c2eb4
CS
160### Samba CUPS Variablen
161 $sambasettings{'LOADPRINTERS'} = 'Yes';
162 $sambasettings{'PRINTING'} = 'cups';
163 $sambasettings{'PRINTCAPNAME'} = 'cups';
164 $sambasettings{'PRINTERNAME'} = 'Printer';
fa7be659 165### Values that have to be initialized
c9f3d846
AF
166 $sambasettings{'WIDELINKS'} = 'on';
167 $sambasettings{'UNIXEXTENSION'} = 'off';
fa7be659
CS
168 $sambasettings{'ACTION'} = '';
169 $sambasettings{'LOCALMASTER'} = 'off';
170 $sambasettings{'DOMAINMASTER'} = 'off';
171 $sambasettings{'PREFERREDMASTER'} = 'off';
703a8221
CS
172 $sambasettings{'WIDELINKS'} = 'on';
173 $sambasettings{'UNIXEXTENSION'} = 'off';
3cf764f3 174 $sambasettings{'SMB2'} = 'on';
fa7be659 175 $PDCOPTIONS = `cat ${General::swroot}/samba/pdc`;
60124059 176 system("/usr/local/bin/sambactrl smbreload");
63d4db83 177 refreshpage();
fa7be659 178 }
44254afd 179
0ffbb688
MT
180if ($sambasettings{'ACTION'} eq 'join') {
181 $message .= &joindomain($sambasettings{'USERNAME'}, $sambasettings{'PASSWORD'});
182}
183
32f77a0b 184############################################################################################################################
fa7be659 185################################################ Sicherheitsabfrage für den Reset ##########################################
32f77a0b 186
fa7be659
CS
187if ($sambasettings{'ACTION'} eq 'globalreset')
188 {
189 print <<END
92004c61 190 <br />
fa7be659 191 <table width='95%' cellspacing='0'>
f2fdd0c1 192 <tr><td bgcolor='$color{'color20'}' colspan='3' align='center'><b>$Lang::tr{'resetglobals'}</b>
fa7be659 193 <tr><td align='right' width='50%'><form method='post' action='$ENV{'SCRIPT_NAME'}'>
a08a5f33 194 $Lang::tr{'yes'} <input type='image' alt='$Lang::tr{'yes'}' title='$Lang::tr{'yes'}' src='/images/edit-redo.png' />
fa7be659
CS
195 <input type='hidden' name='ACTION' value='globalresetyes' /></form></td>
196 <td align='left' width='50%'><form method='post' action='$ENV{'SCRIPT_NAME'}'>
a08a5f33 197 <input type='image' alt='$Lang::tr{'no'}' title='$Lang::tr{'no'}' src='/images/dialog-error.png' /> $Lang::tr{'no'}
fa7be659
CS
198 <input type='hidden' name='ACTION' value='cancel' /></form></td>
199 </tr>
200 </table>
201END
202;
32f77a0b
CS
203}
204
fa7be659
CS
205if ($sambasettings{'ACTION'} eq 'sharesreset')
206 {
207 print <<END
92004c61 208 <br />
fa7be659 209 <table width='95%' cellspacing='0'>
f2fdd0c1 210 <tr><td bgcolor='$color{'color20'}' colspan='3' align='center'><b>$Lang::tr{'resetshares'}</b>
fa7be659 211 <tr><td align='right' width='50%'><form method='post' action='$ENV{'SCRIPT_NAME'}'>
a08a5f33 212 $Lang::tr{'yes'} <input type='image' alt='$Lang::tr{'yes'}' title='$Lang::tr{'yes'}' src='/images/edit-redo.png' />
fa7be659
CS
213 <input type='hidden' name='ACTION' value='sharesresetyes' /></form></td>
214 <td align='left' width='50%'><form method='post' action='$ENV{'SCRIPT_NAME'}'>
a08a5f33 215 <input type='image' alt='$Lang::tr{'no'}' title='$Lang::tr{'no'}' src='/images/dialog-error.png' /> $Lang::tr{'no'}
fa7be659
CS
216 <input type='hidden' name='ACTION' value='cancel' /></form></td>
217 </tr>
218 </table>
219END
220;
221 }
222
223############################################################################################################################
224########################################### Samba Benutzer oder PC l�chen #################################################
225
63d4db83 226if ($sambasettings{'ACTION'} eq 'userdelete'){system("/usr/local/bin/sambactrl smbuserdelete $sambasettings{'NAME'}");refreshpage();}
fa7be659 227
14cc7eac
MT
228############################################################################################################################
229##################################### Umsetzen der Werte von Checkboxen und Dropdowns ######################################
1ee8bf5d
MT
230
231if ($sambasettings{'ACTION'} eq $Lang::tr{'save'})
232{
233$sambasettings{'INTERFACES'} = '';
44254afd
MT
234if ($sambasettings{'GREEN'} eq 'on'){ $sambasettings{'INTERFACES'} .= " $netsettings{'GREEN_DEV'}";}
235if ($sambasettings{'BLUE'} eq 'on'){ $sambasettings{'INTERFACES'} .= " $netsettings{'BLUE_DEV'}";}
236if ($sambasettings{'ORANGE'} eq 'on'){ $sambasettings{'INTERFACES'} .= " $netsettings{'ORANGE_DEV'}";}
f57976de 237if ($sambasettings{'VPN'} eq 'on'){$sambasettings{'INTERFACES'} .= " ";}
44254afd 238if ($sambasettings{'OTHERINTERFACES'} ne ''){ $sambasettings{'INTERFACES'} .= " $sambasettings{'OTHERINTERFACES'}";}
1ee8bf5d
MT
239
240############################################################################################################################
32f77a0b 241##################################### Schreiben settings und bersetzen fr smb.conf #######################################
1ee8bf5d 242
63d4db83 243delete $sambasettings{'__CGI__'};delete $sambasettings{'x'};delete $sambasettings{'y'};
c41c2eb4
CS
244&General::writehash("${General::swroot}/samba/settings", \%sambasettings);
245
32f77a0b 246if ($sambasettings{'PASSWORDSYNC'} eq 'on'){ $sambasettings{'PASSWORDSYNC'} = "true";} else { $sambasettings{'PASSWORDSYNC'} = "false";}
fa7be659 247if ($sambasettings{'WINSSUPPORT'} eq 'on'){ $sambasettings{'WINSSUPPORT'} = "true";$sambasettings{'WINSSRV'} = "";} else { $sambasettings{'WINSSUPPORT'} = "false";}
32f77a0b
CS
248if ($sambasettings{'LOCALMASTER'} eq 'on'){ $sambasettings{'LOCALMASTER'} = "true";} else { $sambasettings{'LOCALMASTER'} = "false";}
249if ($sambasettings{'DOMAINMASTER'} eq 'on'){ $sambasettings{'DOMAINMASTER'} = "true";} else { $sambasettings{'DOMAINMASTER'} = "false";}
250if ($sambasettings{'PREFERREDMASTER'} eq 'on'){ $sambasettings{'PREFERREDMASTER'} = "true";} else { $sambasettings{'PREFERREDMASTER'} = "false";}
c9f3d846
AF
251if ($sambasettings{'WIDELINKS'} eq 'on'){ $sambasettings{'WIDELINKS'} = "yes";} else { $sambasettings{'WIDELINKS'} = "no";}
252if ($sambasettings{'UNIXEXTENSION'} eq 'on'){ $sambasettings{'UNIXEXTENSION'} = "yes";} else { $sambasettings{'UNIXEXTENSION'} = "no";}
32f77a0b
CS
253
254############################################################################################################################
255############################################# Schreiben der Samba globals ##################################################
1ee8bf5d
MT
256
257 open (FILE, ">${General::swroot}/samba/global") or die "Can't save the global settings: $!";
258 flock (FILE, 2);
259
260print FILE <<END
32f77a0b
CS
261# global.settings by IPFire Project
262
263[global]
18b7d734
MT
264server string = Samba on IPFire
265
32f77a0b 266netbios name = $sambasettings{'NETBIOSNAME'}
32f77a0b 267workgroup = $sambasettings{'WORKGRP'}
0ffbb688 268realm = $mainsettings{'DOMAINNAME'}
00a5af61 269passdb backend = smbpasswd
32f77a0b 270
c9f3d846
AF
271wide links = $sambasettings{'WIDELINKS'}
272unix extensions = $sambasettings{'UNIXEXTENSION'}
703a8221
CS
273END
274;
c9f3d846 275
703a8221
CS
276if ($sambasettings{'SMB2'} eq 'on'){
277 print FILE "max protocol = smb2\n";
278}
279
280print FILE <<END
32f77a0b 281os level = $sambasettings{'OSLEVEL'}
32f77a0b 282
32f77a0b 283map to guest = $sambasettings{'MAPTOGUEST'}
32f77a0b
CS
284
285security = $sambasettings{'SECURITY'}
32f77a0b
CS
286guest account = $sambasettings{'GUESTACCOUNT'}
287unix password sync = $sambasettings{'PASSWORDSYNC'}
32f77a0b
CS
288
289bind interfaces only = true
290interfaces = $sambasettings{'INTERFACES'}
fa7be659 291remote announce = $sambasettings{'REMOTEANNOUNCE'}
2a1f6aa7 292remote browse sync = $sambasettings{'REMOTESYNC'}
32f77a0b 293
32f77a0b 294wins support = $sambasettings{'WINSSUPPORT'}
fa7be659 295wins server = $sambasettings{'WINSSRV'}
32f77a0b 296
0ffbb688
MT
297winbind separator = +
298winbind uid = 10000-20000
299winbind gid = 10000-20000
300winbind use default domain = yes
301
7a603534 302log file = /var/log/samba/samba-log.%m
fa7be659 303log level = $sambasettings{'LOGLEVEL'}
97e7cfaf 304
32f77a0b
CS
305preferred master = $sambasettings{'PREFERREDMASTER'}
306domain master = $sambasettings{'DOMAINMASTER'}
307local master = $sambasettings{'LOCALMASTER'}
1ee8bf5d 308
32f77a0b
CS
309END
310;
311close FILE;
1ee8bf5d 312
c41c2eb4
CS
313 if (-e "${General::swroot}/cups/enable"){
314 open (FILE, ">>${General::swroot}/samba/global") or die "Can't save the global cups settings: $!";
315 flock (FILE, 2);
316 print FILE <<END
317load printers = $sambasettings{'LOADPRINTERS'}
318printing = $sambasettings{'PRINTING'}
319printcap name = $sambasettings{'PRINTCAPNAME'}
320
321END
322;
323close FILE;
324 }
325
060ecb12 326 if ($sambasettings{'SECURITY'} eq 'user' && $sambasettings{'DOMAINMASTER'} eq 'true' )
c41c2eb4
CS
327 {
328 open (FILE, ">${General::swroot}/samba/pdc") or die "Can't save the pdc settings: $!";
329 flock (FILE, 2);
330 chomp $sambasettings{'PDCOPTIONS'};
331 $sambasettings{'PDCOPTIONS'} =~ s/\r\n/\n/gi;
332 $sambasettings{'PDCOPTIONS'} =~ s/^\n//gi;
333 $sambasettings{'PDCOPTIONS'} =~ s/^\r//gi;
334 $sambasettings{'PDCOPTIONS'} =~ s/^.\n//gi;
335 $sambasettings{'PDCOPTIONS'} =~ s/^.\r//gi;
336 print FILE <<END
32f77a0b 337$sambasettings{'PDCOPTIONS'}
1ee8bf5d
MT
338END
339;
c41c2eb4
CS
340 close FILE;
341 }
342
343if ( -e "/var/ipfire/cups/enable")
344 {
060ecb12 345 if ( $sambasettings{'SECURITY'} eq 'user' && $sambasettings{'DOMAINMASTER'} eq 'true' ){system("/usr/local/bin/sambactrl smbsafeconfpdccups");refreshpage();}
8871b9f2 346 else {system("/usr/local/bin/sambactrl smbsafeconfcups");}
c41c2eb4
CS
347 }
348else
349 {
060ecb12 350 if ( $sambasettings{'SECURITY'} eq 'user' && $sambasettings{'DOMAINMASTER'} eq 'true' ){system("/usr/local/bin/sambactrl smbsafeconfpdc");refreshpage();}
8871b9f2 351 else{system("/usr/local/bin/sambactrl smbsafeconf");}
c41c2eb4
CS
352 }
353
63d4db83 354system("/usr/local/bin/sambactrl smbreload");refreshpage();
1ee8bf5d
MT
355}
356 &General::readhash("${General::swroot}/samba/settings", \%sambasettings);
fa7be659 357
5e773594 358
c41c2eb4
CS
359if ($errormessage)
360 {
361 &Header::openbox('100%', 'left', $Lang::tr{'error messages'});
362 print "<class name='base'>$errormessage\n";
363 print "&nbsp;</class>\n";
364 &Header::closebox();
365 }
1ee8bf5d 366
0ffbb688
MT
367if ($message) {
368 $message = &Header::cleanhtml($message);
369 $message =~ s/\n/<br>/g;
370
371 &Header::openbox('100%', 'left', $Lang::tr{'messages'});
372 print "$message\n";
373 &Header::closebox();
374}
375
14cc7eac
MT
376############################################################################################################################
377########################################## Aktivieren von Checkboxen und Dropdowns #########################################
378
44254afd
MT
379$checked{'WINSSUPPORT'}{'off'} = '';
380$checked{'WINSSUPPORT'}{'on'} = '';
381$checked{'WINSSUPPORT'}{$sambasettings{'WINSSUPPORT'}} = "checked='checked'";
32f77a0b
CS
382$checked{'PASSWORDSYNC'}{'off'} = '';
383$checked{'PASSWORDSYNC'}{'on'} = '';
384$checked{'PASSWORDSYNC'}{$sambasettings{'PASSWORDSYNC'}} = "checked='checked'";
385$checked{'LOCALMASTER'}{'off'} = '';
386$checked{'LOCALMASTER'}{'on'} = '';
387$checked{'LOCALMASTER'}{$sambasettings{'LOCALMASTER'}} = "checked='checked'";
388$checked{'DOMAINMASTER'}{'off'} = '';
389$checked{'DOMAINMASTER'}{'on'} = '';
390$checked{'DOMAINMASTER'}{$sambasettings{'DOMAINMASTER'}} = "checked='checked'";
391$checked{'PREFERREDMASTER'}{'off'} = '';
392$checked{'PREFERREDMASTER'}{'on'} = '';
393$checked{'PREFERREDMASTER'}{$sambasettings{'PREFERREDMASTER'}} = "checked='checked'";
c9f3d846
AF
394$checked{'WIDELINKS'}{'off'} = '';
395$checked{'WIDELINKS'}{'on'} = '';
396$checked{'WIDELINKS'}{$sambasettings{'WIDELINKS'}} = "checked='checked'";
397$checked{'UNIXEXTENSION'}{'off'} = '';
398$checked{'UNIXEXTENSION'}{'on'} = '';
399$checked{'UNIXEXTENSION'}{$sambasettings{'UNIXEXTENSION'}} = "checked='checked'";
703a8221
CS
400$checked{'SMB2'}{'off'} = '';
401$checked{'SMB2'}{'on'} = '';
402$checked{'SMB2'}{$sambasettings{'SMB2'}} = "checked='checked'";
44254afd
MT
403$checked{'GREEN'}{'off'} = '';
404$checked{'GREEN'}{'on'} = '';
405$checked{'GREEN'}{$sambasettings{'GREEN'}} = "checked='checked'";
406$checked{'BLUE'}{'off'} = '';
407$checked{'BLUE'}{'on'} = '';
408$checked{'BLUE'}{$sambasettings{'BLUE'}} = "checked='checked'";
409$checked{'ORANGE'}{'off'} = '';
410$checked{'ORANGE'}{'on'} = '';
411$checked{'ORANGE'}{$sambasettings{'ORANGE'}} = "checked='checked'";
412$checked{'VPN'}{'off'} = '';
413$checked{'VPN'}{'on'} = '';
414$checked{'VPN'}{$sambasettings{'VPN'}} = "checked='checked'";
5e773594 415
725254ef
AF
416if ( $sambasettings{'MAPTOGUEST'} eq "Never" ) {
417 $sambasettings{'MAPTOGUEST'}="Bad User";
418}
97de2cae 419$selected{'MAPTOGUEST'}{$sambasettings{'MAPTOGUEST'}} = "selected='selected'";
97de2cae 420$selected{'SECURITY'}{$sambasettings{'SECURITY'}} = "selected='selected'";
5e773594
MT
421
422############################################################################################################################
32f77a0b 423################################### Aufbau der HTML Seite fr globale Sambaeinstellungen ###################################
5e773594 424
c9e1c143 425&Header::openbox('100%', 'center', $Lang::tr{'samba'});
5e773594 426print <<END
c41c2eb4
CS
427<br />
428<table width='95%' cellspacing='0'>
f2fdd0c1 429<tr bgcolor='$color{'color20'}'><td colspan='2' align='left'><b>$Lang::tr{'all services'}</b></td></tr>
32f77a0b
CS
430</table><table width='95%' cellspacing='0'>
431END
432;
433
434my $key = '';
435foreach $key (sort keys %servicenames)
436 {
c9e1c143 437 print "<tr><td align='left' width='40%'>$key</td>";
32f77a0b
CS
438 my $shortname = $servicenames{$key};
439 my $status = &isrunning($shortname);
c9e1c143 440 print "$status</tr>";
32f77a0b
CS
441 }
442
443print <<END
32f77a0b 444</table>
92004c61 445<br />
60124059 446<table width='95%' cellspacing='0'>
60124059 447<tr><td align='left' width='40%' />
a08a5f33
CS
448<td align='center' ><form method='post' action='$ENV{'SCRIPT_NAME'}'><input type='hidden' name='ACTION' value='smbstart' /><input type='image' alt='$Lang::tr{'smbstart'}' title='$Lang::tr{'smbstart'}' src='/images/go-up.png' /></form></td>
449<td align='center' ><form method='post' action='$ENV{'SCRIPT_NAME'}'><input type='hidden' name='ACTION' value='smbstop' /><input type='image' alt='$Lang::tr{'smbstop'}' title='$Lang::tr{'smbstop'}' src='/images/go-down.png' /></form></td>
450<td align='center' ><form method='post' action='$ENV{'SCRIPT_NAME'}'><input type='hidden' name='ACTION' value='smbrestart' /><input type='image' alt='$Lang::tr{'smbrestart'}' title='$Lang::tr{'smbrestart'}' src='/images/view-refresh.png' /></form></td></tr>
60124059 451</table>
92004c61 452<br />
32f77a0b
CS
453<form method='post' action='$ENV{'SCRIPT_NAME'}'>
454<table width='95%' cellspacing='0'>
f2fdd0c1 455<tr bgcolor='$color{'color20'}'><td colspan='2' align='left'><b>$Lang::tr{'basic options'}</b></td></tr>
c9e1c143
CS
456<tr><td align='left' width='40%'>$Lang::tr{'workgroup'}</td><td align='left'><input type='text' name='WORKGRP' value='$sambasettings{'WORKGRP'}' size="30" /></td></tr>
457<tr><td align='left' width='40%'>$Lang::tr{'netbios name'}</td><td align='left'><input type='text' name='NETBIOSNAME' value='$sambasettings{'NETBIOSNAME'}' size="30" /></td></tr>
c9e1c143
CS
458<tr><td align='left' width='40%'>$Lang::tr{'log level'}</td><td align='left'><input type='text' name='LOGLEVEL' value='$sambasettings{'LOGLEVEL'}' size="30" /></td></tr>
459<tr><td align='left' width='40%'>$Lang::tr{'interfaces'}</td><td align='left'>on <input type='radio' name='VPN' value='on' $checked{'VPN'}{'on'} />/
32f77a0b 460 <input type='radio' name='VPN' value='off' $checked{'VPN'}{'off'} /> off |
f57976de 461 <font size='2' color='$Header::colourovpn'><b> OpenVpn - $ovpnip[0].$ovpnip[1].$ovpnip[2].$ovpnip[3]/$ovpnnetwork[1]</b></font></td></tr>
fa7be659 462<tr><td align='left' width='40%'></td><td align='left'>on <input type='radio' name='GREEN' value='on' $checked{'GREEN'}{'on'} />/
32f77a0b
CS
463 <input type='radio' name='GREEN' value='off' $checked{'GREEN'}{'off'} /> off |
464 <font size='2' color='$Header::colourgreen'><b> $Lang::tr{'green'} - $netsettings{'GREEN_DEV'}</b></font></td></tr>
465END
466;
467
468if (&Header::blue_used())
469 {
470 print <<END
fa7be659 471 <tr><td align='left' width='40%'></td><td align='left'>on <input type='radio' name='BLUE' value='on' $checked{'BLUE'}{'on'} />/
32f77a0b
CS
472 <input type='radio' name='BLUE' value='off' $checked{'BLUE'}{'off'} /> off |
473 <font size='2' color='$Header::colourblue'><b> $Lang::tr{'wireless'} - $netsettings{'BLUE_DEV'}</b></font></td></tr>
474END
475;
476 }
477
478if (&Header::orange_used())
479 {
480 print <<END
fa7be659 481 <tr><td align='left' width='40%'></td><td align='left'>on <input type='radio' name='ORANGE' value='on' $checked{'ORANGE'}{'on'} />/
32f77a0b
CS
482 <input type='radio' name='ORANGE' value='off' $checked{'ORANGE'}{'off'} /> off |
483 <font size='2' color='$Header::colourorange'><b> $Lang::tr{'dmz'} - $netsettings{'ORANGE_DEV'}</b></font></td></tr>
484END
485;
486 }
487
488print <<END
c9e1c143 489<tr><td align='center' width='40%'>$Lang::tr{'more'}</td><td align='left'><input type='text' name='OTHERINTERFACES' value='$sambasettings{'OTHERINTERFACES'}' size="30" /></td></tr>
32f77a0b 490<tr><td align='left'><br /></td><td></td></tr>
c9f3d846
AF
491<tr><td align='left' width='40%'>Wide links</td><td align='left'>on <input type='radio' name='WIDELINKS' value='on' $checked{'WIDELINKS'}{'on'} />/
492 <input type='radio' name='WIDELINKS' value='off' $checked{'WIDELINKS'}{'off'} /> off</td></tr>
493<tr><td align='left' width='40%'>Unix extension</td><td align='left'>on <input type='radio' name='UNIXEXTENSION' value='on' $checked{'UNIXEXTENSION'}{'on'} />/
494 <input type='radio' name='UNIXEXTENSION' value='off' $checked{'UNIXEXTENSION'}{'off'} /> off</td></tr>
703a8221
CS
495<tr><td align='left' width='40%'>SMB2 $Lang::tr{'protocol'}</td><td align='left'>on <input type='radio' name='SMB2' value='on' $checked{'SMB2'}{'on'} />/
496 <input type='radio' name='SMB2' value='off' $checked{'SMB2'}{'off'} /> off</td></tr>
c9f3d846 497<tr><td align='left'><br /></td><td></td></tr>
f2fdd0c1 498<tr bgcolor='$color{'color20'}'><td colspan='2' align='left'><b>$Lang::tr{'security options'}</b></td></tr>
c9e1c143 499<tr><td align='left' width='40%'>$Lang::tr{'security'}</td><td align='left'><select name='SECURITY' style="width: 165px">
32f77a0b
CS
500 <option value='user' $selected{'SECURITY'}{'user'}>User</option>
501 <option value='domain' $selected{'SECURITY'}{'domain'}>Domain</option>
502 <option value='ADS' $selected{'SECURITY'}{'ADS'}>ADS</option>
503 <option value='server' $selected{'SECURITY'}{'server'}>Server</option>
504 </select></td></tr>
c9e1c143 505<tr><td align='left' width='40%'>$Lang::tr{'map to guest'}</td><td align='left'><select name='MAPTOGUEST' style="width: 165px">
32f77a0b
CS
506 <option value='Bad User' $selected{'MAPTOGUEST'}{'Bad User'}>Bad User</option>
507 <option value='Bad Password' $selected{'MAPTOGUEST'}{'Bad Password'}>Bad Password</option>
508 </select></td></tr>
2a1f6aa7
CS
509END
510;
511#<tr><td align='left' width='40%'>$Lang::tr{'unix password sync'}</td><td align='left'>on <input type='radio' name='PASSWORDSYNC' value='on' $checked{'PASSWORDSYNC'}{'on'} />/
512# <input type='radio' name='PASSWORDSYNC' value='off' $checked{'PASSWORDSYNC'}{'off'} /> off</td></tr>
513print <<END
fa7be659 514<tr><td align='left'><br /></td><td /></tr>
f2fdd0c1 515<tr bgcolor='$color{'color20'}'><td colspan='2' align='left'><b>$Lang::tr{'network options'}</b></td></tr>
c9e1c143
CS
516<tr><td align='left' width='40%'>$Lang::tr{'os level'}</td><td align='left'><input type='text' name='OSLEVEL' value='$sambasettings{'OSLEVEL'}' size="30" /></td></tr>
517<tr><td align='left' width='40%'>$Lang::tr{'remote announce'}</td><td align='left'><input type='text' name='REMOTEANNOUNCE' value='$sambasettings{'REMOTEANNOUNCE'}' size="30" /></td></tr>
fcd5cb6f 518<tr><td align='left' width='40%'>$Lang::tr{'remote browse sync'}</td><td align='left'><input type='text' name='REMOTESYNC' value='$sambasettings{'REMOTESYNC'}' size="30" /></td></tr>
fa7be659
CS
519END
520;
c9e1c143 521if ($sambasettings{'WINSSUPPORT'} eq 'off') {print"<tr><td align='left' width='40%'>$Lang::tr{'wins server'}</td><td align='left'><input type='text' name='WINSSRV' value='$sambasettings{'WINSSRV'}' size='30' /></td></tr>";}
fa7be659 522 print <<END
c9e1c143 523<tr><td align='left' width='40%'>$Lang::tr{'wins support'}</td><td align='left'>on <input type='radio' name='WINSSUPPORT' value='on' $checked{'WINSSUPPORT'}{'on'} />/
fa7be659 524 <input type='radio' name='WINSSUPPORT' value='off' $checked{'WINSSUPPORT'}{'off'} /> off</td></tr>
32f77a0b
CS
525END
526;
527
528if ($sambasettings{'SECURITY'} eq 'user')
529 {
530 print <<END
c9e1c143 531<tr><td align='left' width='40%'>$Lang::tr{'local master'}</td><td align='left'>on <input type='radio' name='LOCALMASTER' value='on' $checked{'LOCALMASTER'}{'on'} />/
32f77a0b 532 <input type='radio' name='LOCALMASTER' value='off' $checked{'LOCALMASTER'}{'off'} /> off</td></tr>
c9e1c143 533<tr><td align='left' width='40%'>$Lang::tr{'domain master'}</td><td align='left'>on <input type='radio' name='DOMAINMASTER' value='on' $checked{'DOMAINMASTER'}{'on'} />/
32f77a0b 534 <input type='radio' name='DOMAINMASTER' value='off' $checked{'DOMAINMASTER'}{'off'} /> off</td></tr>
c9e1c143 535<tr><td align='left' width='40%'>$Lang::tr{'prefered master'}</td><td align='left'>on <input type='radio' name='PREFERREDMASTER' value='on' $checked{'PREFERREDMASTER'}{'on'} />/
32f77a0b
CS
536 <input type='radio' name='PREFERREDMASTER' value='off' $checked{'PREFERREDMASTER'}{'off'} /> off</td></tr>
537END
538;
539 }
540
541if ($sambasettings{'SECURITY'} eq 'user' && $sambasettings{'DOMAINMASTER'} eq 'on')
542 {
543 print <<END
544 <tr><td align='left'><br /></td><td></td></tr>
f2fdd0c1 545 <tr bgcolor='$color{'color20'}'><td colspan='2' align='left'><b>$Lang::tr{'pdc options'}</b></td></tr>
32f77a0b
CS
546 <tr><td align='left'><br /></td><td></td></tr>
547 <tr><td colspan='2' align='center'><textarea name="PDCOPTIONS" cols="50" rows="15" Wrap="off">$PDCOPTIONS</textarea></td></tr>
548END
c41c2eb4
CS
549;
550 }
551
552 if ( -e "/var/ipfire/cups/enable")
553 {
554 print <<END
555 <tr><td align='left'><br /></td><td></td></tr>
f2fdd0c1 556 <tr bgcolor='$color{'color20'}'><td colspan='2' align='left'><b>$Lang::tr{'printing options'}</b></td></tr>
c41c2eb4
CS
557 <tr><td align='left' width='40%'>$Lang::tr{'load printer'}</td><td align='left'><input type='text' name='LOADPRINTERS' value='$sambasettings{'LOADPRINTERS'}' size="30" /></td></tr>
558 <tr><td align='left' width='40%'>$Lang::tr{'printing'}</td><td align='left'><input type='text' name='PRINTING' value='$sambasettings{'PRINTING'}' size="30" /></td></tr>
559 <tr><td align='left' width='40%'>$Lang::tr{'printcap name'}</td><td align='left'><input type='text' name='PRINTCAPNAME' value='$sambasettings{'PRINTCAPNAME'}' size="30" /></td></tr>
560END
32f77a0b
CS
561;
562 }
563
564print <<END
565</table>
92004c61 566<br />
32f77a0b 567<table width='10%' cellspacing='0'>
32f77a0b
CS
568<tr><td align='center'><form method='post' action='$ENV{'SCRIPT_NAME'}'>
569 <input type='hidden' name='ACTION' value=$Lang::tr{'save'} />
a08a5f33 570 <input type='image' alt='$Lang::tr{'save'}' title='$Lang::tr{'save'}' src='/images/media-floppy.png' /></form></td>
32f77a0b
CS
571<td align='center'><form method='post' action='$ENV{'SCRIPT_NAME'}'>
572 <input type='hidden' name='ACTION' value='globalreset' />
a08a5f33 573 <input type='image' alt='$Lang::tr{'reset'}' title='$Lang::tr{'reset'}' src='/images/reload.gif' /></form></td>
32f77a0b
CS
574<td align='center'><form method='post' action='$ENV{'SCRIPT_NAME'}'>
575 <input type='hidden' name='ACTION' value='globalcaption' />
a08a5f33 576 <input type='image' alt='$Lang::tr{'caption'}' title='$Lang::tr{'caption'}' src='/images/help-browser.png' /></form></td></tr>
32f77a0b 577</table>
44254afd
MT
578END
579;
32f77a0b 580
44254afd 581if ($sambasettings{'ACTION'} eq 'globalcaption')
32f77a0b
CS
582 {
583 print <<END
92004c61 584 <br />
32f77a0b 585 <table width='95%' cellspacing='0'>
c9e1c143 586 <tr><td align='center' colspan='2'><b>$Lang::tr{'caption'}</b></td></tr>
60124059 587 <tr><td align='right' width='33%'><img src='/images/media-floppy.png' /></td><td align='left'>$Lang::tr{'save settings'}</td></tr>
c9e1c143 588 <tr><td align='right' width='33%'><img src='/images/reload.gif' /></td><td align='left'>$Lang::tr{'restore settings'}</td></tr>
32f77a0b 589 </table>
5e773594
MT
590END
591;
32f77a0b
CS
592 }
593
5e773594
MT
594&Header::closebox();
595
14cc7eac 596############################################################################################################################
32f77a0b 597########################################## Benutzerverwaltung fr Usersecurity #############################################
14cc7eac 598
1ee8bf5d 599if ($sambasettings{'SECURITY'} eq 'user')
32f77a0b
CS
600 {
601 if ($sambasettings{'DOMAINMASTER'} eq 'off')
602 {
c9e1c143 603 &Header::openbox('100%', 'center', $Lang::tr{'accounting user nonpdc'});
32f77a0b
CS
604 }
605 else
606 {
c9e1c143 607 &Header::openbox('100%', 'center', $Lang::tr{'accounting user pdc'});
32f77a0b
CS
608 }
609 print <<END
d3bea043 610 <a name="$Lang::tr{'accounting'}"></a>
92004c61 611 <br />
32f77a0b 612 <table width='95%' cellspacing='0'>
32f77a0b 613 <tr><td colspan='6' align='left'></td></tr>
f2fdd0c1 614 <tr><td bgcolor='$color{'color20'}' colspan='7' align='left'><b>$Lang::tr{'accounting'}</b></td></tr>
c9e1c143 615 <tr><td align='left'><u>$Lang::tr{'username'}</u></td><td align='left'><u>$Lang::tr{'password'}</u></td>
32f77a0b
CS
616END
617;
5e773594 618
32f77a0b
CS
619 if ($sambasettings{'DOMAINMASTER'} eq 'off')
620 {
621 print "<td></td>";
622 }
623 else
624 {
92004c61 625 print "<td align='left'><u>$Lang::tr{'type'}</u></td>";
32f77a0b
CS
626 }
627
92004c61 628 print "<td align='left'><u>$Lang::tr{'status'}</u></td><td colspan='3' width='5%' align='center'><u>$Lang::tr{'options'}</u></td></tr>";
32f77a0b 629 system('/usr/local/bin/sambactrl readsmbpasswd');
c41c2eb4 630 open(FILE, "<${General::swroot}/samba/private/smbpasswd") or die "Can't read user file: $!";
32f77a0b
CS
631 @user = <FILE>;
632 close(FILE);
633 system('/usr/local/bin/sambactrl locksmbpasswd');
a28fdc01
CS
634
635 my $lines = 0;
636
32f77a0b
CS
637 foreach $userentry (sort @user)
638 {
639 @userline = split( /\:/, $userentry );
a28fdc01
CS
640 if ($lines % 2) {print "<tr bgcolor='$color{'color20'}'>";} else {print "<tr bgcolor='$color{'color22'}'>";}
641 print "<td align='left'>$userline[0]</td><td align='left'>";
32f77a0b
CS
642 if ($userline[4] =~ /N/)
643 {
c9e1c143 644 print "$Lang::tr{'not set'}</td><td align='left'>";
32f77a0b
CS
645 }
646 else
647 {
c9e1c143 648 print "$Lang::tr{'set'}</td><td align='left'>";
32f77a0b
CS
649 }
650
651 if ($sambasettings{'DOMAINMASTER'} eq 'off')
652 {
fa7be659 653 print "</td><td align='left'>";
32f77a0b
CS
654 }
655 else
656 {
657 if ($userline[0] =~ /\$/)
658 {
71dfc4b7 659 print "$Lang::tr{'pc'}</td><td align='left'>";
32f77a0b
CS
660 }
661 else
662 {
c9e1c143 663 print "$Lang::tr{'user'}</td><td align='left'>";
32f77a0b
CS
664 }
665 }
666
667 if ($userline[4] =~ /D/)
668 {
669 print <<END
92004c61 670 $Lang::tr{'inactive'}</td>
19f5a6cc 671 <td align='center'><form method='post' action='$ENV{'SCRIPT_NAME'}#$Lang::tr{'accounting'}'>
32f77a0b
CS
672 <input type='hidden' name='NAME' value='$userline[0]' />
673 <input type='hidden' name='ACTION' value='smbuserenable' />
25943d3b 674 <input type='image' alt='$Lang::tr{'activate'}' title='$Lang::tr{'activate'}' src='/images/off.gif' />
32f77a0b
CS
675 </form></td>
676END
677;
678 }
679 else
680 {
681 print <<END
92004c61 682 $Lang::tr{'active'}</td>
19f5a6cc 683 <td align='center'><form method='post' action='$ENV{'SCRIPT_NAME'}#$Lang::tr{'accounting'}'>
32f77a0b
CS
684 <input type='hidden' name='NAME' value='$userline[0]' />
685 <input type='hidden' name='ACTION' value='smbuserdisable' />
25943d3b 686 <input type='image' alt='$Lang::tr{'deactivate'}' title='$Lang::tr{'deactivate'}' src='/images/on.gif' />
32f77a0b
CS
687 </form></td>
688END
689;
690 }
691
692 if ($userline[0] =~ /\$/)
693 {
694 print "<td></td>";
695 }
696 else
697 {
698 print <<END
19f5a6cc 699 <td align='center'><form method='post' action='$ENV{'SCRIPT_NAME'}#$Lang::tr{'accounting'}'>
32f77a0b
CS
700 <input type='hidden' name='NAME' value='$userline[0]' />
701 <input type='hidden' name='ACTION' value='userchangepw' />
a08a5f33 702 <input type='image' alt='$Lang::tr{'edit'}' title='$Lang::tr{'edit'}' src='/images/edit.gif' />
32f77a0b
CS
703 </form></td>
704END
705;
706 }
707
fa7be659
CS
708 if ($sambasettings{'DOMAINMASTER'} eq 'on' && $userline[0] =~ /\$/)
709 {
710 print <<END
19f5a6cc 711 <td><form method='post' action='$ENV{'SCRIPT_NAME'}#$Lang::tr{'accounting'}'>
fa7be659
CS
712 <input type='hidden' name='NAME' value='$userline[0]' />
713 <input type='hidden' name='ACTION' value='userdelete' />
a08a5f33 714 <input type='image' alt='$Lang::tr{'delete'}' title='$Lang::tr{'delete'}' src='/images/network-error.png' />
fa7be659
CS
715 </form></td></tr>
716END
717;
718 }
719 else
720 {
721 print <<END
19f5a6cc 722 <td><form method='post' action='$ENV{'SCRIPT_NAME'}#$Lang::tr{'accounting'}'>
fa7be659
CS
723 <input type='hidden' name='NAME' value='$userline[0]' />
724 <input type='hidden' name='ACTION' value='userdelete' />
a08a5f33 725 <input type='image' alt='$Lang::tr{'delete'}' title='$Lang::tr{'delete'}' src='/images/user-option-remove.png' />
fa7be659 726 </form></td></tr>
32f77a0b
CS
727END
728;
fa7be659 729 }
a28fdc01 730 $lines++;
32f77a0b
CS
731 }
732 print <<END
733 </table>
92004c61 734 <br />
32f77a0b 735 <table width='10%' cellspacing='0'>
19f5a6cc 736 <tr><td align='center'><form method='post' action='$ENV{'SCRIPT_NAME'}#$Lang::tr{'accounting'}'>
32f77a0b 737 <input type='hidden' name='ACTION' value='useradd' />
a08a5f33 738 <input type='image' alt='$Lang::tr{'add user'}' title='$Lang::tr{'add user'}' src='/images/user-option-add.png' /></form></td>
5e773594
MT
739END
740;
1ee8bf5d 741
32f77a0b
CS
742 if ($sambasettings{'DOMAINMASTER'} eq 'on')
743 {
744 print <<END
19f5a6cc 745 <td align='center'><form method='post' action='$ENV{'SCRIPT_NAME'}#$Lang::tr{'accounting'}'>
32f77a0b 746 <input type='hidden' name='ACTION' value='pcadd' />
a08a5f33 747 <input type='image' alt='$Lang::tr{'pc add'}' title='$Lang::tr{'pc add'}' src='/images/network.png' /></form>
32f77a0b
CS
748END
749;
750 }
751 print <<END
19f5a6cc 752 <td align='center'><form method='post' action='$ENV{'SCRIPT_NAME'}#$Lang::tr{'accounting'}'>
32f77a0b 753 <input type='hidden' name='ACTION' value='usercaption' />
a08a5f33 754 <input type='image' alt='$Lang::tr{'caption'}' title='$Lang::tr{'caption'}' src='/images/help-browser.png' /></form>
94819213 755 </td></tr>
32f77a0b
CS
756 </table>
757END
758;
44254afd 759
32f77a0b
CS
760 if ($sambasettings{'ACTION'} eq 'usercaption')
761 {
762 print <<END
92004c61 763 <br />
32f77a0b 764 <table width='95%' cellspacing='0'>
c9e1c143
CS
765 <tr><td align='center' colspan='2'><b>$Lang::tr{'caption'}</b></td></tr>
766 <tr><td align='right' width='33%'><img src='/images/user-option-add.png' /></td><td align='left'>$Lang::tr{'add user'}</td></tr>
115340d2 767 <tr><td align='right' width='33%'><img src='/images/network.png' /></td><td align='left'>$Lang::tr{'pc add'}</td></tr>
c9e1c143
CS
768 <tr><td align='right' width='33%'><img src='/images/user-option-remove.png' /></td><td align='left'>$Lang::tr{'delete user'}</td></tr>
769 <tr><td align='right' width='33%'><img src='/images/network-error.png' /></td><td align='left'>$Lang::tr{'delete pc'}</td></tr>
25943d3b
CS
770 <tr><td align='right' width='33%'><img src='/images/off.gif' /></td><td align='left'>$Lang::tr{'activate user'}</td></tr>
771 <tr><td align='right' width='33%'><img src='/images/on.gif' /></td><td align='left'>$Lang::tr{'deactivate user'}</td></tr>
c9e1c143 772 <tr><td align='right' width='33%'><img src='/images/edit.gif' /></td><td align='left'>$Lang::tr{'change passwords'}</td></tr>
60124059 773 <tr><td align='right' width='33%'><img src='/images/media-floppy.png' /></td><td align='left'>$Lang::tr{'save config'}</td></tr>
32f77a0b 774 </table>
1ee8bf5d
MT
775END
776;
32f77a0b
CS
777 }
778
779 if ($sambasettings{'ACTION'} eq 'userchangepw')
780 {
781 my $username = "$sambasettings{'NAME'}";
782 my $password = 'samba';
783 print <<END
92004c61 784 <br />
19f5a6cc 785 <form method='post' action='$ENV{'SCRIPT_NAME'}#$Lang::tr{'accounting'}'>
32f77a0b 786 <table width='95%' cellspacing='0'>
f2fdd0c1 787 <tr bgcolor='$color{'color20'}'><td colspan='2' align='left'><b>$Lang::tr{'change passwords'}</b></td></tr>
153cf640 788 <tr><td align='left'>$Lang::tr{'username'}</td><td><input type='text' name='USERNAME' value='$username' size='30' readonly='readonly' /></td></tr>
c9e1c143 789 <tr><td align='left'>$Lang::tr{'password'}</td><td><input type='password' name='PASSWORD' value='$password' size='30' /></td></tr>
32f77a0b 790 <tr><td colspan='2' align='center'><input type='hidden' name='ACTION' value='smbchangepw' />
f8aa0679 791 <input type='image' alt='$Lang::tr{'save'}' title='$Lang::tr{'save'}' src='/images/media-floppy.png' /></td></tr>
32f77a0b 792 </table>
94819213 793 </form>
1ee8bf5d
MT
794END
795;
32f77a0b
CS
796 }
797
798 if ($sambasettings{'ACTION'} eq 'useradd')
799 {
800 my $username = "user";
801 my $password = "samba";
802 chomp $username;
803 $username=~s/\s//g;
804 chomp $password;
805 $password=~s/\s//g;
806 print <<END
92004c61 807 <br />
19f5a6cc 808 <form method='post' action='$ENV{'SCRIPT_NAME'}#$Lang::tr{'accounting'}'>
32f77a0b 809 <table width='95%' cellspacing='0'>
f2fdd0c1 810 <tr bgcolor='$color{'color20'}'><td colspan='2' align='left'><b>$Lang::tr{'add user'}</b></td></tr>
c9e1c143
CS
811 <tr><td align='left'>$Lang::tr{'username'}</td><td><input type='text' name='USERNAME' value='$username' size='30' /></td></tr>
812 <tr><td align='left'>$Lang::tr{'password'}</td><td><input type='password' name='PASSWORD' value='$password' size='30' /></td></tr>
813 <tr><td align='left'>$Lang::tr{'unix group'}</td><td><input type='text' name='GROUP' value='sambauser' size='30' /></td></tr>
814 <tr><td align='left'>$Lang::tr{'unix shell'}</td><td><input type='text' name='SHELL' value='/bin/false' size='30' /></td></tr>
32f77a0b 815 <tr><td colspan='2' align='center'><input type='hidden' name='ACTION' value='smbuseradd' />
f8aa0679 816 <input type='image' alt='$Lang::tr{'save'}' title='$Lang::tr{'save'}' src='/images/media-floppy.png' /></td></tr>
32f77a0b 817 </table>
94819213 818 </form>
32f77a0b
CS
819END
820;
821 }
822
823 if ($sambasettings{'ACTION'} eq 'pcadd')
824 {
825 my $pcname = "client\$";
826 chomp $pcname;
827 $pcname=~s/\s//g;
828 print <<END
92004c61 829 <br />
19f5a6cc 830 <form method='post' action='$ENV{'SCRIPT_NAME'}#$Lang::tr{'accounting'}'>
32f77a0b 831 <table width='95%' cellspacing='0'>
f2fdd0c1 832 <tr bgcolor='$color{'color20'}'><td colspan='2' align='left'><b>$Lang::tr{'pc add'}</b></td></tr>
c9e1c143
CS
833 <tr><td align='left'>$Lang::tr{'client'}</td><td><input type='text' name='PCNAME' value='$pcname' size='30' /></td></tr>
834 <tr><td align='left'>$Lang::tr{'unix group'}</td><td><input type='text' name='GROUP' value='sambawks' size='30' /></td></tr>
835 <tr><td align='left'>$Lang::tr{'unix shell'}</td><td><input type='text' name='SHELL' value='/bin/false' size='30' /></td></tr>
32f77a0b 836 <tr><td colspan='2' align='center'><input type='hidden' name='ACTION' value='smbpcadd' />
f8aa0679 837 <input type='image' alt='$Lang::tr{'save'}' title='$Lang::tr{'save'}' src='/images/media-floppy.png' /></td></tr>
32f77a0b 838 </table>
94819213 839 </form>
32f77a0b
CS
840END
841;
842 }
97de2cae
MT
843
844&Header::closebox();
1ee8bf5d 845}
14cc7eac 846
0ffbb688
MT
847if ($sambasettings{'SECURITY'} eq "ADS") {
848 &Header::openbox('100%', 'center', $Lang::tr{'samba join a domain'});
849
850 my $AD_DOMAINNAME = uc($mainsettings{'DOMAINNAME'});
851
852 print <<END;
853 <form method="POST" action="$ENV{'SCRIPT_NAME'}">
854 <input type="hidden" name="ACTION" value="join">
855
856 <table width="95%">
857 <tbody>
858 <tr>
859 <td width="40%">
860 $Lang::tr{'domain'}
861 </td>
862 <td>
863 $AD_DOMAINNAME
864 </td>
865 </tr>
866 <tr>
867 <td width="40%">
868 $Lang::tr{'administrator username'}
869 </td>
870 <td>
871 <input type="text" name="USERNAME" size="30">
872 </td>
873 </tr>
874 <tr>
875 <td width="40%">
876 $Lang::tr{'administrator password'}
877 </td>
878 <td>
879 <input type="password" name="PASSWORD" size="30">
880 </td>
881 </tr>
882 <tr>
883 <td></td>
884 <td>
885 <input type="submit" value="$Lang::tr{'samba join domain'}">
886 </td>
887 </tr>
888 </tbody>
889 </table>
890 </form>
891END
892
893 &Header::closebox();
894}
895
14cc7eac
MT
896############################################################################################################################
897############################################### Verwalten von Freigaben ####################################################
fa7be659 898
c9e1c143 899&Header::openbox('100%', 'center', $Lang::tr{'shares'});
97de2cae 900
c41c2eb4
CS
901my %shares = config("${General::swroot}/samba/shares");
902
903
1ee8bf5d 904print <<END
d3bea043 905<a name="$Lang::tr{'manage shares'}"></a>
92004c61 906<br />
961f3dbc
AM
907<table width='95%' cellspacing='0' class='tbl'>
908<tr><th bgcolor='$color{'color20'}' colspan='3' align='left'><b>$Lang::tr{'manage shares'}</b></th></tr>
909<tr><th align='left'><u>$Lang::tr{'sharename'}</u></th><th colspan='2' width="5%" align='center'><u>$Lang::tr{'options'}</u></th></tr>
1ee8bf5d
MT
910END
911;
14cc7eac 912
c41c2eb4 913my @Shares = keys(%shares);
a28fdc01 914my $lines = 0;
961f3dbc 915my $col="";
c41c2eb4 916foreach my $shareentry (sort @Shares)
32f77a0b 917 {
c41c2eb4 918 chomp $shareentry;
961f3dbc
AM
919 if ($lines % 2) {
920 print "<tr>";
921 $col="bgcolor='$color{'color20'}'";
922 } else {
923 print "<tr>";
924 $col="bgcolor='$color{'color22'}'";
925 }
32f77a0b 926 print <<END
961f3dbc
AM
927 <td align='left' $col>$shareentry</td>
928 <td $col><form method='post' action='$ENV{'SCRIPT_NAME'}#$Lang::tr{'manage shares'}'>
32f77a0b
CS
929 <input type='hidden' name='NAME' value='$shareentry' />
930 <input type='hidden' name='ACTION' value='sharechange' />
a08a5f33 931 <input type='image' alt='$Lang::tr{'edit'}' title='$Lang::tr{'edit'}' src='/images/edit.gif' />
32f77a0b 932 </form></td>
961f3dbc 933 <td $col><form method='post' action='$ENV{'SCRIPT_NAME'}#$Lang::tr{'manage shares'}'>
32f77a0b
CS
934 <input type='hidden' name='NAME' value='$shareentry' />
935 <input type='hidden' name='ACTION' value='smbsharedel' />
a08a5f33 936 <input type='image' alt='$Lang::tr{'delete'}' title='$Lang::tr{'delete'}' src='/images/user-trash.png' />
94819213 937 </form></td></tr>
32f77a0b
CS
938END
939;
a28fdc01 940 $lines++;
32f77a0b
CS
941 }
942
943print <<END
944</table>
92004c61 945<br />
32f77a0b 946<table width='10%' cellspacing='0'>
19f5a6cc 947<tr><td align='center'><form method='post' action='$ENV{'SCRIPT_NAME'}#$Lang::tr{'manage shares'}'>
94819213 948 <input type='hidden' name='ACTION' value='shareadd' />
a08a5f33 949 <input type='image' alt='$Lang::tr{'add share'}' title='$Lang::tr{'add share'}' src='/images/list-add.png' />
32f77a0b 950 </form></td>
19f5a6cc 951 <td align='center'><form method='post' action='$ENV{'SCRIPT_NAME'}#$Lang::tr{'manage shares'}'>
94819213 952 <input type='hidden' name='ACTION' value='sharesreset' />
a08a5f33 953 <input type='image' alt='$Lang::tr{'reset'}' title='$Lang::tr{'reset'}' src='/images/reload.gif' />
32f77a0b 954 </form></td>
19f5a6cc 955 <td align='center'><form method='post' action='$ENV{'SCRIPT_NAME'}#$Lang::tr{'manage shares'}'>
88932936 956 <input type='hidden' name='ACTION' value='sharecaption' />
a08a5f33 957 <input type='image' alt='$Lang::tr{'caption'}' title='$Lang::tr{'caption'}' src='/images/help-browser.png' />
88932936
CS
958 </form></td>
959</tr>
32f77a0b 960</table>
1ee8bf5d
MT
961END
962;
32f77a0b 963
1ee8bf5d 964if ($sambasettings{'ACTION'} eq 'sharecaption')
32f77a0b
CS
965 {
966 print <<END
92004c61 967 <br />
32f77a0b 968 <table width='95%' cellspacing='0'>
92004c61 969 <tr><td align='center' colspan='2'><b>$Lang::tr{'caption'}</b></td></tr>
60124059 970 <tr><td align='right' width='33%'><img src='/images/list-add.png' /></td><td align='left'>$Lang::tr{'add share'}</td></tr>
c9e1c143 971 <tr><td align='right' width='33%'><img src='/images/edit.gif' /></td><td align='left'>$Lang::tr{'edit share'}</td></tr>
60124059 972 <tr><td align='right' width='33%'><img src='/images/media-floppy.png' /></td><td align='left'>$Lang::tr{'save config'}</td></tr>
c9e1c143 973 <tr><td align='right' width='33%'><img src='/images/reload.gif' /></td><td align='left'>$Lang::tr{'reset shares'}</td></tr>
60124059 974 <tr><td align='right' width='33%'><img src='/images/user-trash.png' /></td><td align='left'>$Lang::tr{'delete share'}</td></tr>
32f77a0b 975 </table>
1ee8bf5d
MT
976END
977;
32f77a0b 978 }
97de2cae 979
1ee8bf5d 980if ($sambasettings{'ACTION'} eq 'shareadd' || $sambasettings{'ACTION'} eq 'optioncaption' )
32f77a0b
CS
981 {
982 print <<END
92004c61 983 <br />
32f77a0b 984 <table width='95%' cellspacing='0'>
f2fdd0c1 985 <tr bgcolor='$color{'color20'}'><td colspan='2' align='left'><b>$Lang::tr{'add share'}</b></td></tr>
32f77a0b 986 <tr><td colspan='2' align='center'></td></tr>
88932936 987 <tr><td colspan='2' align='center'>$Lang::tr{'show share options'}
c41c2eb4 988 <a href="sambahlp.cgi" target="popup" onClick="window.open ('', 'popup', 'width=580,height=600,scrollbars=yes, toolbar=no,status=no, resizable=yes,menubar=no,location=no,directories=no,top=10,left=10')"><img border="0" src="/images/help-browser.png"></a></td></tr>
19f5a6cc 989 <form method='post' action='$ENV{'SCRIPT_NAME'}#$Lang::tr{'manage shares'}'><tr><td colspan='2' align='center'><textarea name="SHAREOPTION" cols="50" rows="15" Wrap="off">$defaultoption</textarea></td></tr>
32f77a0b 990 </table>
92004c61 991 <br />
32f77a0b 992 <table width='10%' cellspacing='0'>
94819213 993 <tr><td align='center'><input type='hidden' name='ACTION' value='smbshareadd' />
a08a5f33 994 <input type='image' alt='$Lang::tr{'add share'}' title='$Lang::tr{'add share'}' src='/images/media-floppy.png' /></td></tr></form>
32f77a0b 995 </table>
5e773594
MT
996END
997;
32f77a0b 998 }
5e773594 999
1ee8bf5d 1000if ($sambasettings{'ACTION'} eq 'sharechange' || $sambasettings{'ACTION'} eq 'optioncaption2' )
32f77a0b 1001 {
c41c2eb4 1002 my $shareoption = $shares{$sambasettings{'NAME'}};
32f77a0b 1003 print <<END
92004c61 1004 <br />
32f77a0b 1005 <table width='95%' cellspacing='0'>
f2fdd0c1 1006 <tr bgcolor='$color{'color20'}'><td colspan='2' align='left'><b>$Lang::tr{'edit share'}</b></td></tr>
32f77a0b 1007 <tr><td colspan='2' align='center'></td></tr>
c41c2eb4 1008 <tr><td colspan='2' align='center'>$Lang::tr{'show share options'}<a href="sambahlp.cgi" target="popup" onClick="window.open ('', 'popup', 'width=580,height=600,scrollbars=yes, toolbar=no,status=no, resizable=yes,menubar=no,location=no,directories=no,top=10,left=10')"><img border="0" src="/images/help-browser.png"></a></td></tr>
19f5a6cc 1009 <tr><td colspan='2' align='center'><form method='post' action='$ENV{'SCRIPT_NAME'}#$Lang::tr{'manage shares'}'><textarea name="SHAREOPTION" cols="50" rows="15" Wrap="off">$shareoption</textarea></td></tr>
32f77a0b 1010 </table>
92004c61 1011 <br />
32f77a0b 1012 <table width='10%' cellspacing='0'>
94819213 1013 <tr><td align='center'><input type='hidden' name='NAME' value='$sambasettings{'NAME'}' />
a08a5f33 1014 <input type='image' alt='$Lang::tr{'change share'}' title='$Lang::tr{'change share'}' src='/images/media-floppy.png' />
fa7be659 1015 <input type='hidden' name='ACTION' value='smbsharechange' /></form></td></tr>
32f77a0b 1016 </table>
1ee8bf5d
MT
1017END
1018;
32f77a0b 1019 }
5e773594 1020
c41c2eb4
CS
1021if ($sambasettings{'ACTION'} eq 'sharesresetyes')
1022 {
1023 system('/usr/local/bin/sambactrl smbsharesreset');
1024 my $shares = config("${General::swroot}/samba/shares");
1025 system("/usr/local/bin/sambactrl smbreload");
1026 }
1027if ($sambasettings{'ACTION'} eq 'smbshareadd')
1028 {
1029 $shares{'xvx'}= "$sambasettings{'SHAREOPTION'}";
1030 save("shares");
1031 my $shares = config("${General::swroot}/samba/shares");
1032 }
1033if ($sambasettings{'ACTION'} eq 'smbsharedel')
1034 {
1035 delete $shares{$sambasettings{'NAME'}};
1036 save("shares");
1037 my %shares = config("${General::swroot}/samba/shares");
1038 }
1039if ($sambasettings{'ACTION'} eq 'smbsharechange')
1040 {
1041 $shares{$sambasettings{'NAME'}} = $sambasettings{'SHAREOPTION'};
1042 save("shares");
1043 my %shares = config("${General::swroot}/samba/shares");
1044 }
1045
1046&Header::closebox();
1047
1048############################################################################################################################
1049################################################ Verwalten von Druckern ####################################################
1050
1051my %printer = config("${General::swroot}/samba/printer");
1052
1053if ( -e "/var/ipfire/cups/enable")
1054{
1055&Header::openbox('100%', 'center', $Lang::tr{'printer'});
1056
1057my @Printers = keys(%printer);
1058print <<END
d3bea043 1059<a name="$Lang::tr{'manage printers'}"></a>
c41c2eb4
CS
1060<br />
1061<table width='95%' cellspacing='0'>
f2fdd0c1 1062<tr><td bgcolor='$color{'color20'}' colspan='3' align='left'><b>$Lang::tr{'manage printers'}</b>
c41c2eb4
CS
1063<tr><td align='left'><u>$Lang::tr{'printername'}</u></td><td colspan='2' width="5%" align='center'><u>$Lang::tr{'options'}</u></td></tr>
1064END
1065;
1066foreach my $printerentry (sort @Printers)
1067 {
1068 chomp $printerentry;
1069 print <<END
1070 <tr><td align='left'>$printerentry</td>
19f5a6cc 1071 <td><form method='post' action='$ENV{'SCRIPT_NAME'}#$Lang::tr{'manage printers'}'>
c41c2eb4
CS
1072 <input type='hidden' name='NAME' value='$printerentry' />
1073 <input type='hidden' name='ACTION' value='printerchange' />
a08a5f33 1074 <input type='image' alt='$Lang::tr{'edit'}' title='$Lang::tr{'edit'}' src='/images/edit.gif' />
c41c2eb4 1075 </form></td>
19f5a6cc 1076 <td><form method='post' action='$ENV{'SCRIPT_NAME'}#$Lang::tr{'manage printers'}'>
c41c2eb4
CS
1077 <input type='hidden' name='NAME' value='$printerentry' />
1078 <input type='hidden' name='ACTION' value='smbprinterdel' />
a08a5f33 1079 <input type='image' alt='$Lang::tr{'delete'}' title='$Lang::tr{'delete'}' src='/images/user-trash.png' />
c41c2eb4
CS
1080 </form></td></tr>
1081END
1082;
1083 }
1084print <<END
1085</table>
1086<br />
1087<table width='10%' cellspacing='0'>
19f5a6cc 1088<tr><td align='center'><form method='post' action='$ENV{'SCRIPT_NAME'}#$Lang::tr{'manage printers'}'>
c41c2eb4 1089 <input type='hidden' name='ACTION' value='printeradd' />
a08a5f33 1090 <input type='image' alt='$Lang::tr{'add printer'}' title='$Lang::tr{'add printer'}' src='/images/list-add.png' />
c41c2eb4 1091 </form></td>
19f5a6cc 1092 <td align='center'><form method='post' action='$ENV{'SCRIPT_NAME'}#$Lang::tr{'manage printers'}'>
c41c2eb4 1093 <input type='hidden' name='ACTION' value='printereset' />
a08a5f33 1094 <input type='image' alt='$Lang::tr{'reset'}' title='$Lang::tr{'reset'}' src='/images/reload.gif' />
c41c2eb4 1095 </form></td>
19f5a6cc 1096 <td align='center'><form method='post' action='$ENV{'SCRIPT_NAME'}#$Lang::tr{'manage printers'}'>
c41c2eb4 1097 <input type='hidden' name='ACTION' value='printercaption' />
a08a5f33 1098 <input type='image' alt='$Lang::tr{'caption'}' title='$Lang::tr{'caption'}' src='/images/help-browser.png' />
c41c2eb4
CS
1099 </form></td>
1100</tr>
1101</table>
1102END
1103;
1104
1105if ($sambasettings{'ACTION'} eq 'printeradd' || $sambasettings{'ACTION'} eq 'printercaption' )
1106 {
1107 print <<END
c41c2eb4
CS
1108 <br />
1109 <table width='95%' cellspacing='0'>
f2fdd0c1 1110 <tr bgcolor='$color{'color20'}'><td colspan='2' align='left'><b>$Lang::tr{'add printer'}</b></td></tr>
c41c2eb4
CS
1111 <tr><td colspan='2' align='center'></td></tr>
1112 <tr><td colspan='2' align='center'>$Lang::tr{'show share options'}
1113 <a href="sambahlp.cgi" target="popup" onClick="window.open ('', 'popup', 'width=580,height=600,scrollbars=yes, toolbar=no,status=no, resizable=yes,menubar=no,location=no,directories=no,top=10,left=10')"><img border="0" src="/images/help-browser.png"></a></td></tr>
19f5a6cc 1114 <form method='post' action='$ENV{'SCRIPT_NAME'}#$Lang::tr{'manage printers'}'><tr><td colspan='2' align='center'><textarea name="PRINTEROPTION" cols="50" rows="15" Wrap="off">$defaultprinter</textarea></td></tr>
c41c2eb4
CS
1115 </table>
1116 <br />
1117 <table width='10%' cellspacing='0'>
1118 <tr><td align='center'><input type='hidden' name='ACTION' value='smbprinteradd' />
a08a5f33 1119 <input type='image' alt='$Lang::tr{'add share'}' title='$Lang::tr{'add share'}' src='/images/media-floppy.png' /></td></tr>
c41c2eb4
CS
1120 </table>
1121 </form>
1122END
1123;
1124 }
1125
1126if ($sambasettings{'ACTION'} eq 'printerchange' || $sambasettings{'ACTION'} eq 'printercaption2' )
1127 {
1128 my $printeroption = $printer{$sambasettings{'NAME'}};
1129 print <<END
c41c2eb4
CS
1130 <br />
1131 <table width='95%' cellspacing='0'>
f2fdd0c1 1132 <tr bgcolor='$color{'color20'}'><td colspan='2' align='left'><b>$Lang::tr{'edit printer'}</b></td></tr>
c41c2eb4
CS
1133 <tr><td colspan='2' align='center'></td></tr>
1134 <tr><td colspan='2' align='center'>$Lang::tr{'show share options'}<a href="sambahlp.cgi" target="popup" onClick="window.open ('', 'popup', 'width=580,height=600,scrollbars=yes, toolbar=no,status=no, resizable=yes,menubar=no,location=no,directories=no,top=10,left=10')"><img border="0" src="/images/help-browser.png"></a></td></tr>
19f5a6cc 1135 <tr><td colspan='2' align='center'><form method='post' action='$ENV{'SCRIPT_NAME'}#$Lang::tr{'manage printers'}'><textarea name="PRINTEROPTION" cols="50" rows="15" Wrap="off">$printeroption</textarea></td></tr>
c41c2eb4
CS
1136 </table>
1137 <br />
1138 <table width='10%' cellspacing='0'>
1139 <tr><td align='center'><input type='hidden' name='NAME' value='$sambasettings{'NAME'}' />
a08a5f33 1140 <input type='image' alt='$Lang::tr{'change share'}' title='$Lang::tr{'change share'}' src='/images/media-floppy.png' />
c41c2eb4
CS
1141 <input type='hidden' name='ACTION' value='smbprinterchange' /></form></td></tr>
1142 </table>
1143END
1144;
1145 }
1146
1147if ($sambasettings{'ACTION'} eq 'smbprinteradd')
1148 {
1149 $printer{'xvx'}= "$sambasettings{'PRINTEROPTION'}";
1150 save("printer");
1151 my %printer = config("${General::swroot}/samba/printer");
1152 }
1153
1154if ($sambasettings{'ACTION'} eq 'smbprinterdel')
1155 {
1156 delete $printer{$sambasettings{'NAME'}};
1157 save("printer");
1158 my %printer = config("${General::swroot}/samba/printer");
1159 }
1160
1161if ($sambasettings{'ACTION'} eq 'smbprinterchange')
1162 {
1163 $printer{$sambasettings{'NAME'}} = $sambasettings{'PRINTEROPTION'};
1164 save("printer");
1165 my %printer = config("${General::swroot}/samba/printer");
1166 }
1167
32f77a0b 1168&Header::closebox();
c41c2eb4 1169}
32f77a0b
CS
1170
1171############################################################################################################################
1172############################################### Anzeige des Sambastatus ####################################################
1173
1174&Header::openbox('100%', 'center', 'Status');
1175
1176print <<END
92004c61 1177<br />
32f77a0b 1178<table width='95%' cellspacing='0'>
f2fdd0c1 1179<tr><td bgcolor='$color{'color20'}' colspan='3' align='left'><b>$Lang::tr{'samba status'}</b></td></tr>
fb8e2c14 1180<tr><td align='left'><small><pre>$Status</pre></small></td></tr>
fa7be659
CS
1181</table>
1182END
1183;
1184&Header::closebox();
1185
1186############################################################################################################################
c41c2eb4 1187############################################### Anzeige der Sambalogs ######################################################
fa7be659
CS
1188
1189
1190if ($sambasettings{'ACTION'} eq 'showlog')
1191{
c41c2eb4 1192$Log = qx(tail -n $sambasettings{'LOGLINES'} /var/log/samba/$sambasettings{'LOG'});
fa7be659
CS
1193$Log=~s/\n/<br \/>/g;
1194}
1195
c9e1c143 1196&Header::openbox('100%', 'center', $Lang::tr{'log'});
fa7be659
CS
1197
1198print <<END
d3bea043 1199<a name="$Lang::tr{'log view'}"></a>
92004c61 1200<br />
19f5a6cc 1201<form method='post' action='$ENV{'SCRIPT_NAME'}#$Lang::tr{'log view'}'>
fa7be659 1202<table width='95%' cellspacing='0'>
f2fdd0c1 1203<tr><td bgcolor='$color{'color20'}' colspan='3' align='left'><b>$Lang::tr{'log view'}</b></td></tr>
fa7be659
CS
1204<tr><td colspan='3' align='left'><br /></td></tr>
1205<tr><td align='left'><select name='LOG' style="width: 200px">
1206END
1207;
1208foreach my $log (@Logs) {chomp $log;print"<option value='$log'>$log</option>";}
1209print <<END
1210
c9e1c143 1211</select></td><td align='left'>$Lang::tr{'show last x lines'}<input type='text' name='LOGLINES' value='$LOGLINES' size="3" /></td>
a08a5f33 1212 <td align='left'><input type='hidden' name='ACTION' value='showlog' /><input type='image' alt='view Log' title='view Log' src='/images/format-justify-fill.png' /></td></tr>
fa7be659
CS
1213<tr><td colspan='3' align='left'><br /></td></tr>
1214<tr><td colspan='3' align='left'><font size=2>$Log</font></td></tr>
1215<tr><td colspan='3' align='left'><br /></td></tr>
1216<tr><td colspan='3' align='center'>$sambasettings{'LOG'}</td></tr>
32f77a0b 1217</table>
fa7be659 1218</form>
32f77a0b
CS
1219END
1220;
1ee8bf5d 1221&Header::closebox();
5e773594
MT
1222&Header::closebigbox();
1223&Header::closepage();
1224
1225############################################################################################################################
fa7be659 1226############################################ Subfunktion fr Sambadienste ###################################################
5e773594 1227
c41c2eb4
CS
1228sub config
1229{
1230my $file = shift;
1231my @allarray = `grep -n '^\\[' $file`;
1232my @linesarray = ();
1233my @namearray = ();
1234my %hash = ();
1235my $options = ();
1236my $EOF = qx(cat $file | wc -l);
1237foreach my $allarrayentry (@allarray)
1238 {
1239 my @allarrayline = split( /\:/, $allarrayentry );
1240 push(@linesarray,$allarrayline[0]);$allarrayline[1]=~s/\[//g;$allarrayline[1]=~s/\]//g;push(@namearray,$allarrayline[1]);
1241 }
1242 for(my $i = 0; $i <= $#namearray; $i++)
1243 {
1244 chomp $namearray[$i];
1245 $namearray[$i]=~s/\[//g;$namearray[$i]=~s/\]//g;
1246 if ( $i eq $#namearray )
1247 {
1248 my $lineend = $EOF-$linesarray[$i]+1;
1249 $options=qx(tail -$lineend $file);
1250 }
1251 else
1252 {
1253 my $linestart = $EOF-$linesarray[$i]+1;
1254 my $lineend = $linesarray[$i+1]-$linesarray[$i];
1255 $options=qx(tail -$linestart $file | head -$lineend);
1256 }
1257 $hash{$namearray[$i]} = "$options";
1e482cb6 1258 #print"<pre>$namearray[$i]\n$options\n</pre>"; # enable only for debuging
c41c2eb4
CS
1259 }
1260return(%hash);
1261}
1262
1263sub save
1264{
1265my $smb = shift;
1266open (FILE, ">${General::swroot}/samba/$smb") or die "Can't $smb settings $!";
1267flock (FILE, 2);
1268
1269if ( $smb eq 'printer')
1270 {while (my ($name, $option) = each %printer){chomp $option;$option =~ s/\r\n/\n/gi;$option =~ s/^\n//gi;$option =~ s/^\r//gi;$option =~ s/^.\n//gi;$option =~ s/^.\r//gi;print FILE "$option\n";}}
1271
1272if ( $smb eq 'shares')
1273 {while (my ($name, $option) = each %shares){chomp $option;$option =~ s/\r\n/\n/gi;$option =~ s/^\n//gi;$option =~ s/^\r//gi;$option =~ s/^.\n//gi;$option =~ s/^.\r//gi;print FILE "$option\n";} }
1274
1275close FILE;
1276
1277if ( -e "/var/ipfire/cups/enable")
1278 {
060ecb12 1279 if ( $sambasettings{'SECURITY'} eq 'user' && $sambasettings{'DOMAINMASTER'} eq 'true' ){system("/usr/local/bin/sambactrl smbsafeconfpdccups");}
c41c2eb4
CS
1280 else {system("/usr/local/bin/sambactrl smbsafeconfcups");}
1281 }
1282else
1283 {
060ecb12 1284 if ( $sambasettings{'SECURITY'} eq 'user' && $sambasettings{'DOMAINMASTER'} eq 'true' ){system("/usr/local/bin/sambactrl smbsafeconfpdc");}
c41c2eb4
CS
1285 else{system("/usr/local/bin/sambactrl smbsafeconf");}
1286 }
1287
1288system("/usr/local/bin/sambactrl smbreload");
63d4db83 1289refreshpage();
a4a3e35c 1290}
c41c2eb4 1291
5e773594 1292sub isrunning
32f77a0b
CS
1293 {
1294 my $cmd = $_[0];
1295 my $status = "<td align='center' bgcolor='${Header::colourred}'><font color='white'><b>$Lang::tr{'stopped'}</b></font></td>";
1296 my $pid = '';
1297 my $testcmd = '';
1298 my $exename;
1299
1300 $cmd =~ /(^[a-z]+)/;
1301 $exename = $1;
1302
1303 if (open(FILE, "/var/run/${cmd}.pid"))
1304 {
1305 $pid = <FILE>; chomp $pid;
1306 close FILE;
1307 if (open(FILE, "/proc/${pid}/status"))
1308 {
1309 while (<FILE>)
1310 {
1311 if (/^Name:\W+(.*)/)
1312 {
1313 $testcmd = $1;
1314 }
1315 }
1316 close FILE;
1317 if ($testcmd =~ /$exename/)
1318 {
1319 $status = "<td align='center' bgcolor='${Header::colourgreen}'><font color='white'><b>$Lang::tr{'running'}</b></font></td>";
1320 }
1321 }
1322 }
1323 return $status;
c41c2eb4 1324 }
0ffbb688
MT
1325
1326sub joindomain {
1327 my $username = shift;
1328 my $password = shift;
1329
1330 my @options = ("/usr/local/bin/sambactrl", "join", $username, $password);
1331 my $output = qx(@options);
1332
1333 return $output;
1334}