diff --git a/ezmlm-web.cgi b/ezmlm-web.cgi index 53feae2..f2230a9 100755 --- a/ezmlm-web.cgi +++ b/ezmlm-web.cgi @@ -14,6 +14,7 @@ use Getopt::Std; use ClearSilver; use Mail::Ezmlm; use Mail::Address; +use File::Copy; use File::Path; use DB_File; use CGI; @@ -518,7 +519,7 @@ sub set_pagedata4list_gnupg() { my %config = $gpg_list->getconfig(); my $item; foreach $item (keys %config) { - $pagedata->setValue("Data.List.gnupg_options.$item", $config{$item}); + $pagedata->setValue("Data.List.Options.gnupg_$item", $config{$item}); } # retrieve the currently available public keys @@ -1138,7 +1139,7 @@ sub create_list { sub extract_options_from_params() { # Work out the command line options ... - my ($options, $avail_options, $settings, $avail_settings, $i); + my ($options, $settings, $i); my ($listname, $old_options, $state, $old_key); # NOTE: we have to define _every_ (even unchanged) setting @@ -1157,11 +1158,10 @@ sub extract_options_from_params() ################ options ################ $i = 0; $old_key = substr($old_options,$i,1); - $avail_options = $q->param('options_available'); # parse the first part of the options string while ($old_key =~ m/\w/) { # scan the first part of the options string for lower case letters - if ($avail_options =~ m/$old_key/i) { + if (defined($q->param('available_option_' . lc($old_key)))) { my $form_var_name = "option_" . lc($old_key); # this option was visible for the user if (defined($q->param($form_var_name))) { @@ -1181,9 +1181,8 @@ sub extract_options_from_params() ############### settings ################ - $avail_settings = $q->param('settings_available'); for ($i=0; $i<=9; $i++) { - if ($avail_settings =~ m/$i/) { + if (defined($q->param('available_setting_' . $i))) { # this setting was visible for the user if (defined($q->param("setting_state_$i"))) { $options .= " -$i '" . $q->param("setting_value_$i") . "'"; diff --git a/lang/de.hdf b/lang/de.hdf index 086589e..12f575b 100644 --- a/lang/de.hdf +++ b/lang/de.hdf @@ -146,6 +146,13 @@ Lang { w = Entferne den Aufruf von ezmlm-warn aus den Verarbeitungsregeln (für sehr spezielle Konfigurationen) x = Prüfe die MIME-Typen der Anhänge eingehender Nachrichten y = Fordere eine Bestätigung für jede eingesandte Nachricht an + gnupg_allowKeySubmission = Erlaube die Einsendung von Schlüsseln per Mail + gnupg_encryptToAll = Verschlüssele an alle Empfänger gleichzeitig (keine individuell verschlüsselten Mails) + gnupg_NokeyNocrypt = Sende Nachrichten im Klartext an Empfänger ohne Schlüssel + gnupg_RequireSub = Nur AbonnentInnen dürfen Nachrichten einsenden + gnupg_signMessages = Signiere ausgehende Nachrichten mit dem Listenschlüssel + gnupg_VerifiedKeyReq = Verwende ausschliesslich verifizierte Schlüssel + gnupg_requireSigs = Nur korrekt signierte Nachrichten werden angenommen } @@ -206,6 +213,9 @@ Lang { NoPublicKeys = Es sind keine öffentlichen Schlüssel vorhanden. NoSecretKeys = Es sind keine privaten Schlüssel vorhanden. GnupgImportKey = Schlüssel aus einer Datei importieren: + GnupgKeyName = Die Bezeichung des Schlüssels + GnupgKeyComment = Ein Kommentar (optional) + GnupgKeySize = Die Länge des Schlüssels } @@ -252,5 +262,6 @@ Lang { GnupgPublicKeys = öffentliche Schlüssel dieser Liste GnupgSecretKeys = Private Schlüssel dieser Liste GnupgKeyImport = Schlüssel importieren + GnupgGenerateKey = Schlüssel der Liste erzeugen } } diff --git a/lang/en.hdf b/lang/en.hdf index bfdd747..808810f 100644 --- a/lang/en.hdf +++ b/lang/en.hdf @@ -146,6 +146,13 @@ Lang { w = Remove the ezmlm-warn invocations from the list setup (rarely useful) x = Remove or reject specific mime types in messages y = Request a confirmation mail for every posted message + gnupg_allowKeySubmission = Allow key submission via mail + gnupg_encryptToAll = Encrypt to all recipients at once (do not encrypt inividually) + gnupg_NokeyNocrypt = Send plaintext to the subscribers which have no key + gnupg_RequireSub = Only subscribers may post messages + gnupg_signMessages = Sign outgoing messages with the list's key + gnupg_VerifiedKeyReq = Use only verified keys + gnupg_requireSigs = Only verifiably signed messages are accepted } @@ -206,6 +213,9 @@ Lang { NoPublicKeys = There are no public keys available. NoSecretKeys = There are no secret keys available. GnupgImportKey = Import a new key from a file: + GnupgKeyName = Name of the key + GnupgKeyComment = Comment (optional) + GnupgKeySize = Length of the key } @@ -252,5 +262,6 @@ Lang { GnupgPublicKeys = Public keys of this list GnupgSecretKeys = Secret keys of this list GnupgKeyImport = Import a key + GnupgGenerateKey = Generate the key for this list } } diff --git a/template/config_options/gnupg_allow_key_submission.cs b/template/config_options/gnupg_allow_key_submission.cs index e69de29..53b2644 100644 --- a/template/config_options/gnupg_allow_key_submission.cs +++ b/template/config_options/gnupg_allow_key_submission.cs @@ -0,0 +1,3 @@ + + + diff --git a/template/config_options/gnupg_encrypt_to_all.cs b/template/config_options/gnupg_encrypt_to_all.cs index e69de29..cda47a4 100644 --- a/template/config_options/gnupg_encrypt_to_all.cs +++ b/template/config_options/gnupg_encrypt_to_all.cs @@ -0,0 +1,3 @@ + + + diff --git a/template/config_options/gnupg_keycomment.cs b/template/config_options/gnupg_keycomment.cs index e69de29..e613ac8 100644 --- a/template/config_options/gnupg_keycomment.cs +++ b/template/config_options/gnupg_keycomment.cs @@ -0,0 +1,4 @@ + + + + diff --git a/template/config_options/gnupg_keyname.cs b/template/config_options/gnupg_keyname.cs index e69de29..d7a2a36 100644 --- a/template/config_options/gnupg_keyname.cs +++ b/template/config_options/gnupg_keyname.cs @@ -0,0 +1,4 @@ + + + + diff --git a/template/config_options/gnupg_keysize.cs b/template/config_options/gnupg_keysize.cs index e69de29..14cbbe9 100644 --- a/template/config_options/gnupg_keysize.cs +++ b/template/config_options/gnupg_keysize.cs @@ -0,0 +1,9 @@ + + + + + diff --git a/template/config_options/gnupg_keytype.cs b/template/config_options/gnupg_keytype.cs deleted file mode 100644 index e69de29..0000000 diff --git a/template/config_options/gnupg_nokey_nocrypt.cs b/template/config_options/gnupg_nokey_nocrypt.cs index e69de29..0c1a782 100644 --- a/template/config_options/gnupg_nokey_nocrypt.cs +++ b/template/config_options/gnupg_nokey_nocrypt.cs @@ -0,0 +1,3 @@ + + + diff --git a/template/config_options/gnupg_require_sigs.cs b/template/config_options/gnupg_require_sigs.cs new file mode 100644 index 0000000..4bc60b9 --- /dev/null +++ b/template/config_options/gnupg_require_sigs.cs @@ -0,0 +1,3 @@ + + + diff --git a/template/config_options/gnupg_require_subscriber.cs b/template/config_options/gnupg_require_subscriber.cs index e69de29..240df87 100644 --- a/template/config_options/gnupg_require_subscriber.cs +++ b/template/config_options/gnupg_require_subscriber.cs @@ -0,0 +1,3 @@ + + + diff --git a/template/config_options/gnupg_sign_messages.cs b/template/config_options/gnupg_sign_messages.cs index e69de29..b8bcd9d 100644 --- a/template/config_options/gnupg_sign_messages.cs +++ b/template/config_options/gnupg_sign_messages.cs @@ -0,0 +1,3 @@ + + + diff --git a/template/config_options/gnupg_verified_key_required.cs b/template/config_options/gnupg_verified_key_required.cs index e69de29..e66aea8 100644 --- a/template/config_options/gnupg_verified_key_required.cs +++ b/template/config_options/gnupg_verified_key_required.cs @@ -0,0 +1,3 @@ + + + diff --git a/template/form_common.cs b/template/form_common.cs index 8b633bc..6489ce7 100644 --- a/template/form_common.cs +++ b/template/form_common.cs @@ -2,8 +2,3 @@ - - - - - diff --git a/template/macros.cs b/template/macros.cs index c4eb6ca..ca8bca4 100644 --- a/template/macros.cs +++ b/template/macros.cs @@ -5,8 +5,9 @@ if:(Data.List.Options[option] == 1) ?>checked="checked" /> + unknown option ()" size="30" /> + unknown setting ()