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