From 0ffbb688d3bf4a0890800b1ae35fb73bf60d1804 Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Sun, 23 Mar 2014 23:47:07 +0100 Subject: [PATCH 1/1] samba: Add GUI functionality to join a domain. --- doc/language_issues.de | 1 + doc/language_issues.en | 1 + doc/language_issues.es | 5 +++ doc/language_issues.fr | 5 +++ doc/language_issues.nl | 5 +++ doc/language_issues.pl | 5 +++ doc/language_issues.ru | 5 +++ doc/language_issues.tr | 5 +++ doc/language_missings | 24 ++++++++++ html/cgi-bin/samba.cgi | 89 +++++++++++++++++++++++++++++++++----- langs/de/cgi-bin/de.pl | 6 +++ langs/en/cgi-bin/en.pl | 6 +++ src/misc-progs/sambactrl.c | 10 +++++ 13 files changed, 157 insertions(+), 10 deletions(-) diff --git a/doc/language_issues.de b/doc/language_issues.de index 9d1e0adce5..92d7f8972a 100644 --- a/doc/language_issues.de +++ b/doc/language_issues.de @@ -21,6 +21,7 @@ WARNING: translation string unused: add-route WARNING: translation string unused: addon WARNING: translation string unused: admin user password has been changed WARNING: translation string unused: administrator user password +WARNING: translation string unused: adsl settings WARNING: translation string unused: advproxy LDAP auth WARNING: translation string unused: advproxy NTLM auth WARNING: translation string unused: advproxy advanced proxy diff --git a/doc/language_issues.en b/doc/language_issues.en index 55ee3e28cd..d9e69e9828 100644 --- a/doc/language_issues.en +++ b/doc/language_issues.en @@ -20,6 +20,7 @@ WARNING: translation string unused: add xtaccess WARNING: translation string unused: add-route WARNING: translation string unused: admin user password has been changed WARNING: translation string unused: administrator user password +WARNING: translation string unused: adsl settings WARNING: translation string unused: advproxy LDAP auth WARNING: translation string unused: advproxy NTLM auth WARNING: translation string unused: advproxy advanced proxy diff --git a/doc/language_issues.es b/doc/language_issues.es index 6bbdc18e1e..b512534400 100644 --- a/doc/language_issues.es +++ b/doc/language_issues.es @@ -585,6 +585,8 @@ WARNING: untranslated string: Number of Countries for the pie chart WARNING: untranslated string: Scan for Songs WARNING: untranslated string: Set time on boot WARNING: untranslated string: addons +WARNING: untranslated string: administrator password +WARNING: untranslated string: administrator username WARNING: untranslated string: advproxy cache-digest WARNING: untranslated string: advproxy errmsg cache WARNING: untranslated string: advproxy errmsg invalid upstream proxy @@ -848,6 +850,7 @@ WARNING: untranslated string: least preferred WARNING: untranslated string: lifetime WARNING: untranslated string: mac filter WARNING: untranslated string: maximum +WARNING: untranslated string: messages WARNING: untranslated string: minimum WARNING: untranslated string: minute WARNING: untranslated string: model @@ -918,6 +921,8 @@ WARNING: untranslated string: route config changed WARNING: untranslated string: routing config added WARNING: untranslated string: routing config changed WARNING: untranslated string: routing table +WARNING: untranslated string: samba join a domain +WARNING: untranslated string: samba join domain WARNING: untranslated string: server restart WARNING: untranslated string: show dh WARNING: untranslated string: snat new source ip address diff --git a/doc/language_issues.fr b/doc/language_issues.fr index 13a3c88027..e6730da917 100644 --- a/doc/language_issues.fr +++ b/doc/language_issues.fr @@ -595,6 +595,8 @@ WARNING: untranslated string: MTU settings WARNING: untranslated string: Number of Countries for the pie chart WARNING: untranslated string: Scan for Songs WARNING: untranslated string: addons +WARNING: untranslated string: administrator password +WARNING: untranslated string: administrator username WARNING: untranslated string: advproxy cache-digest WARNING: untranslated string: advproxy errmsg cache WARNING: untranslated string: advproxy errmsg invalid upstream proxy @@ -859,6 +861,7 @@ WARNING: untranslated string: least preferred WARNING: untranslated string: lifetime WARNING: untranslated string: mac filter WARNING: untranslated string: maximum +WARNING: untranslated string: messages WARNING: untranslated string: minimum WARNING: untranslated string: minute WARNING: untranslated string: model @@ -925,6 +928,8 @@ WARNING: untranslated string: route config changed WARNING: untranslated string: routing config added WARNING: untranslated string: routing config changed WARNING: untranslated string: routing table +WARNING: untranslated string: samba join a domain +WARNING: untranslated string: samba join domain WARNING: untranslated string: server restart WARNING: untranslated string: show dh WARNING: untranslated string: snat new source ip address diff --git a/doc/language_issues.nl b/doc/language_issues.nl index aff38ca0ec..8d24134710 100644 --- a/doc/language_issues.nl +++ b/doc/language_issues.nl @@ -652,6 +652,8 @@ WARNING: translation string unused: yearly firewallhits WARNING: untranslated string: MTU settings WARNING: untranslated string: Number of Countries for the pie chart WARNING: untranslated string: Scan for Songs +WARNING: untranslated string: administrator password +WARNING: untranslated string: administrator username WARNING: untranslated string: atm device WARNING: untranslated string: bytes WARNING: untranslated string: capabilities @@ -670,6 +672,7 @@ WARNING: untranslated string: gen dh WARNING: untranslated string: generate dh key WARNING: untranslated string: imei WARNING: untranslated string: imsi +WARNING: untranslated string: messages WARNING: untranslated string: model WARNING: untranslated string: modem hardware details WARNING: untranslated string: modem information @@ -698,6 +701,8 @@ WARNING: untranslated string: route config changed WARNING: untranslated string: routing config added WARNING: untranslated string: routing config changed WARNING: untranslated string: routing table +WARNING: untranslated string: samba join a domain +WARNING: untranslated string: samba join domain WARNING: untranslated string: show dh WARNING: untranslated string: software version WARNING: untranslated string: source ip country diff --git a/doc/language_issues.pl b/doc/language_issues.pl index 6bbdc18e1e..b512534400 100644 --- a/doc/language_issues.pl +++ b/doc/language_issues.pl @@ -585,6 +585,8 @@ WARNING: untranslated string: Number of Countries for the pie chart WARNING: untranslated string: Scan for Songs WARNING: untranslated string: Set time on boot WARNING: untranslated string: addons +WARNING: untranslated string: administrator password +WARNING: untranslated string: administrator username WARNING: untranslated string: advproxy cache-digest WARNING: untranslated string: advproxy errmsg cache WARNING: untranslated string: advproxy errmsg invalid upstream proxy @@ -848,6 +850,7 @@ WARNING: untranslated string: least preferred WARNING: untranslated string: lifetime WARNING: untranslated string: mac filter WARNING: untranslated string: maximum +WARNING: untranslated string: messages WARNING: untranslated string: minimum WARNING: untranslated string: minute WARNING: untranslated string: model @@ -918,6 +921,8 @@ WARNING: untranslated string: route config changed WARNING: untranslated string: routing config added WARNING: untranslated string: routing config changed WARNING: untranslated string: routing table +WARNING: untranslated string: samba join a domain +WARNING: untranslated string: samba join domain WARNING: untranslated string: server restart WARNING: untranslated string: show dh WARNING: untranslated string: snat new source ip address diff --git a/doc/language_issues.ru b/doc/language_issues.ru index e553af7d10..e4c0e6a199 100644 --- a/doc/language_issues.ru +++ b/doc/language_issues.ru @@ -588,6 +588,8 @@ WARNING: untranslated string: MTU settings WARNING: untranslated string: Number of Countries for the pie chart WARNING: untranslated string: Scan for Songs WARNING: untranslated string: addons +WARNING: untranslated string: administrator password +WARNING: untranslated string: administrator username WARNING: untranslated string: advproxy cache-digest WARNING: untranslated string: advproxy errmsg cache WARNING: untranslated string: advproxy errmsg invalid upstream proxy @@ -844,6 +846,7 @@ WARNING: untranslated string: least preferred WARNING: untranslated string: lifetime WARNING: untranslated string: mac filter WARNING: untranslated string: maximum +WARNING: untranslated string: messages WARNING: untranslated string: minimum WARNING: untranslated string: minute WARNING: untranslated string: model @@ -908,6 +911,8 @@ WARNING: untranslated string: route config changed WARNING: untranslated string: routing config added WARNING: untranslated string: routing config changed WARNING: untranslated string: routing table +WARNING: untranslated string: samba join a domain +WARNING: untranslated string: samba join domain WARNING: untranslated string: server restart WARNING: untranslated string: show dh WARNING: untranslated string: snat new source ip address diff --git a/doc/language_issues.tr b/doc/language_issues.tr index 5d3dbc8177..4a0afb53a6 100644 --- a/doc/language_issues.tr +++ b/doc/language_issues.tr @@ -651,6 +651,8 @@ WARNING: translation string unused: yearly firewallhits WARNING: untranslated string: MTU settings WARNING: untranslated string: Number of Countries for the pie chart WARNING: untranslated string: Scan for Songs +WARNING: untranslated string: administrator password +WARNING: untranslated string: administrator username WARNING: untranslated string: bytes WARNING: untranslated string: capabilities WARNING: untranslated string: default @@ -666,6 +668,7 @@ WARNING: untranslated string: gen dh WARNING: untranslated string: generate dh key WARNING: untranslated string: imei WARNING: untranslated string: imsi +WARNING: untranslated string: messages WARNING: untranslated string: model WARNING: untranslated string: modem hardware details WARNING: untranslated string: modem information @@ -693,6 +696,8 @@ WARNING: untranslated string: route config changed WARNING: untranslated string: routing config added WARNING: untranslated string: routing config changed WARNING: untranslated string: routing table +WARNING: untranslated string: samba join a domain +WARNING: untranslated string: samba join domain WARNING: untranslated string: show dh WARNING: untranslated string: software version WARNING: untranslated string: source ip country diff --git a/doc/language_missings b/doc/language_missings index a20a8d77bb..78e249c21a 100644 --- a/doc/language_missings +++ b/doc/language_missings @@ -14,6 +14,9 @@ # Checking cgi-bin translations for language: fr # ############################################################################ < addon +< administrator password +< administrator username +< adsl settings < advproxy cache-digest < advproxy errmsg cache < advproxy errmsg invalid upstream proxy @@ -329,6 +332,7 @@ < maximum < MB read < MB written +< messages < minimum < minute < model @@ -398,6 +402,8 @@ < qos enter bandwidths < random number generator daemon < red1 +< samba join a domain +< samba join domain < server restart < show dh < snat new source ip address @@ -534,6 +540,9 @@ # Checking cgi-bin translations for language: es # ############################################################################ < addon +< administrator password +< administrator username +< adsl settings < advproxy cache-digest < advproxy errmsg cache < advproxy errmsg invalid upstream proxy @@ -849,6 +858,7 @@ < maximum < MB read < MB written +< messages < minimum < minute < model @@ -934,6 +944,8 @@ < qos enter bandwidths < random number generator daemon < red1 +< samba join a domain +< samba join domain < server restart < Set time on boot < show dh @@ -1047,6 +1059,9 @@ # Checking cgi-bin translations for language: pl # ############################################################################ < addon +< administrator password +< administrator username +< adsl settings < advproxy cache-digest < advproxy errmsg cache < advproxy errmsg invalid upstream proxy @@ -1353,6 +1368,7 @@ < maximum < MB read < MB written +< messages < minimum < minute < model @@ -1424,6 +1440,8 @@ < qos enter bandwidths < random number generator daemon < red1 +< samba join a domain +< samba join domain < server restart < show dh < snat new source ip address @@ -1536,6 +1554,9 @@ ############################################################################ < Add a route < addon +< administrator password +< administrator username +< adsl settings < advproxy cache-digest < advproxy errmsg cache < advproxy errmsg invalid upstream proxy @@ -1848,6 +1869,7 @@ < maximum < MB read < MB written +< messages < minimum < minute < model @@ -1917,6 +1939,8 @@ < qos enter bandwidths < random number generator daemon < red1 +< samba join a domain +< samba join domain < server restart < show dh < snat new source ip address diff --git a/html/cgi-bin/samba.cgi b/html/cgi-bin/samba.cgi index bfa0b89edb..b9bf9f3f39 100644 --- a/html/cgi-bin/samba.cgi +++ b/html/cgi-bin/samba.cgi @@ -67,8 +67,7 @@ $ovpnip[3]=$ovpnip[3]+1; ############################################################################################################################ ############################################# Samba Dienste fr Statusberprfung ########################################## -my %servicenames = ('SMB Daemon' => 'smbd','NetBIOS Nameserver' => 'nmbd'); -#my %servicenames = ('SMB Daemon' => 'smbd','NetBIOS Nameserver' => 'nmbd','Winbind Daemon' => 'winbindd'); +my %servicenames = ('SMB Daemon' => 'smbd', 'NetBIOS Nameserver' => 'nmbd', 'Winbind Daemon' => 'winbindd'); &Header::showhttpheaders(); @@ -192,6 +191,10 @@ if ($sambasettings{'ACTION'} eq 'globalresetyes') refreshpage(); } +if ($sambasettings{'ACTION'} eq 'join') { + $message .= &joindomain($sambasettings{'USERNAME'}, $sambasettings{'PASSWORD'}); +} + ############################################################################################################################ ################################################ Sicherheitsabfrage für den Reset ########################################## @@ -276,6 +279,7 @@ print FILE </g; + + &Header::openbox('100%', 'left', $Lang::tr{'messages'}); + print "$message\n"; + &Header::closebox(); +} + ############################################################################################################################ ########################################## Aktivieren von Checkboxen und Dropdowns ######################################### @@ -440,14 +458,6 @@ $selected{'SECURITY'}{$sambasettings{'SECURITY'}} = "selected='selected'"; print < -END -; -if ( $message ne "" ) - { - print "
$message"; - } - -print <$Lang::tr{'all services'}
END @@ -875,6 +885,55 @@ END &Header::closebox(); } +if ($sambasettings{'SECURITY'} eq "ADS") { + &Header::openbox('100%', 'center', $Lang::tr{'samba join a domain'}); + + my $AD_DOMAINNAME = uc($mainsettings{'DOMAINNAME'}); + + print < + + +
+ + + + + + + + + + + + + + + + + + +
+ $Lang::tr{'domain'} + + $AD_DOMAINNAME +
+ $Lang::tr{'administrator username'} + + +
+ $Lang::tr{'administrator password'} + + +
+ +
+ +END + + &Header::closebox(); +} + ############################################################################################################################ ############################################### Verwalten von Freigaben #################################################### @@ -1304,3 +1363,13 @@ sub isrunning } return $status; } + +sub joindomain { + my $username = shift; + my $password = shift; + + my @options = ("/usr/local/bin/sambactrl", "join", $username, $password); + my $output = qx(@options); + + return $output; +} diff --git a/langs/de/cgi-bin/de.pl b/langs/de/cgi-bin/de.pl index c604ef05a9..5b110a5207 100644 --- a/langs/de/cgi-bin/de.pl +++ b/langs/de/cgi-bin/de.pl @@ -99,7 +99,10 @@ 'addon' => 'Addons', 'admin user password has been changed' => 'Passwort für Benutzer admin wurde geändert.', 'admin users' => 'Liste der Benutzer mit Super User Rechten', +'administrator password' => 'Administrator-Passwort', 'administrator user password' => 'Passwort für Benutzer "admin":', +'administrator username' => 'Administrator-Benutzername', +'adsl settings' => 'ADSL-Einstellungen', 'advanced' => 'Erweitert', 'advanced server' => 'Erweiterte Server-Optionen', 'advproxy AUTH always required' => 'Authentifizierung für uneingeschränkte Quelladressen erforderlich', @@ -1454,6 +1457,7 @@ 'memory' => 'Speicher', 'memory information' => 'Speicherinformationen', 'memory usage per' => 'Speichernutzung pro', +'messages' => 'Meldungen', 'messages logging' => 'Logeinstellungen für /var/log/messages', 'method' => 'Methode:', 'min costs' => 'Minimale Kosten', @@ -1888,6 +1892,8 @@ 'running' => 'LÄUFT', 'safe removal of umounted device' => 'Sie können gefahrlos das abgemeldete Gerät entfernen', 'samba' => 'Samba', +'samba join a domain' => 'Einer Domäne beitreten', +'samba join domain' => 'Domäne beitreten', 'samba status' => 'Samba Status', 'saturday' => 'Samstag', 'save' => 'Speichern', diff --git a/langs/en/cgi-bin/en.pl b/langs/en/cgi-bin/en.pl index f87607fbb9..1754147a08 100644 --- a/langs/en/cgi-bin/en.pl +++ b/langs/en/cgi-bin/en.pl @@ -99,7 +99,10 @@ 'addons' => 'Addons', 'admin user password has been changed' => 'Admin user password has been changed.', 'admin users' => 'User with superuser rights', +'administrator password' => 'Administrator password', 'administrator user password' => 'Admin user password:', +'administrator username' => 'Administrator username', +'adsl settings' => 'ADSL settings', 'advanced' => 'Advanced', 'advanced server' => 'Advanced server options', 'advproxy AUTH always required' => 'Require authentication for unrestricted source addresses', @@ -1484,6 +1487,7 @@ 'memory' => 'Memory', 'memory information' => 'Memory information', 'memory usage per' => 'Memory Usage per', +'messages' => 'Messages', 'messages logging' => 'Logsettings for /var/log/messages', 'method' => 'Method:', 'min costs' => 'Minimum costs', @@ -1920,6 +1924,8 @@ 'running' => 'RUNNING', 'safe removal of umounted device' => 'You can safely remove the unmounted device', 'samba' => 'Samba', +'samba join a domain' => 'Join a domain', +'samba join domain' => 'Join domain', 'samba status' => 'Samba Status', 'saturday' => 'Saturday', 'save' => 'Save', diff --git a/src/misc-progs/sambactrl.c b/src/misc-progs/sambactrl.c index f59f113e97..45c166d461 100644 --- a/src/misc-progs/sambactrl.c +++ b/src/misc-progs/sambactrl.c @@ -129,6 +129,16 @@ int main(int argc, char *argv[]) { } else if (strcmp(argv[1], "disable") == 0) { safe_system("unlink /var/ipfire/samba/enable"); safe_system("rm -rf /etc/rc.d/rc*.d/*samba"); + + } else if (strcmp(argv[1], "join") == 0) { + if (argc == 4) { + snprintf(command, BUFFER_SIZE - 1, "/usr/bin/net join -U \"%s%%%s\"", + argv[2], argv[3]); + return safe_system(command); + } else { + fprintf(stderr, "Wrong number of arguments. Need username and password.\n"); + return 1; + } } return 0; -- 2.39.2