webmin modul ändern

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
gnude
Beiträge: 1569
Registriert: 14.09.2009 22:05:28
Kontaktdaten:

webmin modul ändern

Beitrag von gnude » 06.07.2012 12:38:26

Hallo
ich möchte gern ein webmin modul ändern.
bei dem Punkt Postfix kann man z.b. die Config Files per Hand editieren.
Hier werden dann die dateien master.cf und main.cf angeboten.
Jetzt habe ich in der manual.cgi bereits dei richtigen Dateien hinterlegt,
aber beim speichern sagt er mir, das es keine Dateien sind die zur Postfix konfiguraiton gehören.
Wie kann ich diese Prüfung abschalten?

Hier der Code der manual.cgi :

Code: Alles auswählen

#!/usr/bin/perl
# Show a page for manually editing the Postfix config file

require './postfix-lib.pl';
$access{'manual'} || &error($text{'cmanual_ecannot'});
&ReadParse();
&ui_print_header(undef, $text{'cmanual_title'}, "");

# Work out and show the files
@files = ( '/etc/postfix/sender_relay', '/etc/postfix/sasl_passwd' );
#$in{'file'} ||= $files[0];
#&indexof($in{'file'}, @files) >= 0 || &error($text{'cmanual_efile'});
print &ui_form_start("manual.cgi");
print "<b>$text{'cmanual_file'}</b>\n";
print &ui_select("file", $in{'file'},
                 [ map { [ $_ ] } @files ]),"\n";
print &ui_submit($text{'cmanual_ok'});
print &ui_form_end();

# Show the file contents
print &ui_form_start("manual_update.cgi", "form-data");
print &ui_hidden("file", $in{'file'}),"\n";
$data = &read_file_contents($in{'file'});
print &ui_textarea("data", $data, 20, 80),"\n";
print &ui_form_end([ [ "save", $text{'save'} ] ]);

&ui_print_footer("", $text{'index_return'});

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: webmin modul ändern

Beitrag von rendegast » 07.07.2012 11:33:33

Das wäre die originale Datei aus webmin_1.590:

Code: Alles auswählen

#!/usr/bin/perl
# Show a page for manually editing the Postfix config file

require './postfix-lib.pl';
$access{'manual'} || &error($text{'cmanual_ecannot'});
&ReadParse();
&ui_print_header(undef, $text{'cmanual_title'}, "");

# Work out and show the files
@files = ( $config{'postfix_config_file'}, $config{'postfix_master'} );
$in{'file'} ||= $files[0];
&indexof($in{'file'}, @files) >= 0 || &error($text{'cmanual_efile'});
print &ui_form_start("manual.cgi");
print "<b>$text{'cmanual_file'}</b>\n";
print &ui_select("file", $in{'file'},
                 [ map { [ $_ ] } @files ]),"\n";
print &ui_submit($text{'cmanual_ok'});
print &ui_form_end();

# Show the file contents
print &ui_form_start("manual_update.cgi", "form-data");
print &ui_hidden("file", $in{'file'}),"\n";
$data = &read_file_contents($in{'file'});
print &ui_textarea("data", $data, 20, 80),"\n";
print &ui_form_end([ [ "save", $text{'save'} ] ]);

&ui_print_footer("", $text{'index_return'});
Hast Du da etwas zuviel auskommentiert?

Ich hätte es nach dem vorliegenden Schema versucht:
In der config ein paar weitere Variablen

Code: Alles auswählen

postfix_config_file=/etc/postfix/main.cf
mailq_dir=/var/spool/postfix
postfix_master=/etc/postfix/master.cf
...
postfix_lokal1=/etc/postfix/sender_relay
postfix_lokal2=/etc/postfix/sasl_passwd
und die manual.cgi nur erweitert

Code: Alles auswählen

...
# Work out and show the files
@files = ( $config{'postfix_config_file'}, $config{'postfix_master'}, $config{'postfix_lokal1'}, $config{'postfix_lokal2'} );
...
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

Antworten