diff --git a/ezmlm-web.cgi b/ezmlm-web.cgi index fb19f45..febd19e 100755 --- a/ezmlm-web.cgi +++ b/ezmlm-web.cgi @@ -508,7 +508,7 @@ sub set_pagedata4list # non-encrypted lists should not use this function sub set_pagedata4list_gnupg() { my ($listname) = @_; - my ($gpg_list, %config, $item, @gpg_keys, $gpg_key, %hash); + my ($gpg_list, %config, $item, @gpg_keys, $gpg_key); $gpg_list = new Mail::Ezmlm::Gpg("$LIST_DIR/$listname"); @@ -521,19 +521,20 @@ sub set_pagedata4list_gnupg() { # retrieve the currently available public keys @gpg_keys = $gpg_list->get_public_keys(); - foreach $gpg_key (@gpg_keys) { - %hash = $gpg_key; - $pagedata->setValue("Data.List.gnupg_keys.public." . $hash{id}, $hash{uid}); - warn "pubkey: $hash{uid}"; + for (my $i = 0; $i < $#gpg_keys; $i++) { + $pagedata->setValue("Data.List.gnupg_keys.public.$i.id" , $gpg_keys[$i]{id}); + $pagedata->setValue("Data.List.gnupg_keys.public.$i.email" , $gpg_keys[$i]{email}); + $pagedata->setValue("Data.List.gnupg_keys.public.$i.name" , $gpg_keys[$i]{name}); + $pagedata->setValue("Data.List.gnupg_keys.public.$i.expires" , $gpg_keys[$i]{expires}); } # retrieve the currently available secret keys @gpg_keys = $gpg_list->get_secret_keys(); - foreach $gpg_key (@gpg_keys) { - # TODO: %hash is broken! - %hash = $gpg_key; - $pagedata->setValue("Data.List.gnupg_keys.secret." . $hash{id}, $hash{uid}); - warn "seckey: " . $hash{uid}; + for (my $i = 0; $i < $#gpg_keys; $i++) { + $pagedata->setValue("Data.List.gnupg_keys.secret.$i.id" , $gpg_keys[$i]{id}); + $pagedata->setValue("Data.List.gnupg_keys.secret.$i.email" , $gpg_keys[$i]{email}); + $pagedata->setValue("Data.List.gnupg_keys.secret.$i.name" , $gpg_keys[$i]{name}); + $pagedata->setValue("Data.List.gnupg_keys.secret.$i.expires" , $gpg_keys[$i]{expires}); } } diff --git a/lang/de.hdf b/lang/de.hdf index faffae0..d2eb9f4 100644 --- a/lang/de.hdf +++ b/lang/de.hdf @@ -19,10 +19,10 @@ Lang { ConfigArchive = Archivierung ConfigProcess = Verarbeitung ConfigAll = Übersicht - KeyManagement = Schlüsselverwaltung - KeysPublic = öffentliche Schlüssel - KeysSecret = private Schlüssel - KeysGenerate = Schlüssel anlegen + Gnupg = Schlüsselverwaltung + GnupgPublicKeys = öffentliche Schlüssel + GnupgSecretKeys = private Schlüssel + GnupgGenerateKey = Schlüssel anlegen TextFiles = Texte ListSelect = Auswahl einer Liste Properties = Eigenschaften von @@ -64,6 +64,9 @@ Lang { EditFile = Datei bearbeiten SaveFile = Datei speichern ResetFile = Angepassten Textbaustein verwerfen + DeletePublicKey = Öffentliche(n) Schlüssel lälschen + DeleteSecretKey = Private(n) Schlüssel lälschen + GnupgImportKey = Schlüssel importieren } @@ -199,6 +202,9 @@ Lang { ListLanguage = Sprache der Liste ListCharset = Zeichensatz der Liste ModSubOverridesRemote = Hinweis: falls sowohl die Datenbank der Einsende-ModeratorInnen als auch die der Fern-AdministratorInnen in einem nicht-Standard-Verzeichnis liegen, dann wird die Einsende-ModeratorInnen-Datenbank für beides verwendet + NoPublicKeys = Es sind keine öffentlichen Schlüssel vorhanden. + NoSecretKeys = Es sind keine privaten Schlüssel vorhanden. + GnupgImportKey = Schlüssel aus einer Datei importieren: } @@ -242,5 +248,8 @@ Lang { TextFileReset = Auf die Vorgabe zurücksetzen TextFileInfo = Nützliche Platzhalter AvailableLists = Verfügbare Listen + GnupgPublicKeys = öffentliche Schlüssel dieser Liste + GnupgSecretKeys = Private Schlüssel dieser Liste + GnupgKeyImport = Schlüssel importieren } } diff --git a/lang/en.hdf b/lang/en.hdf index 0325a54..72bff91 100644 --- a/lang/en.hdf +++ b/lang/en.hdf @@ -19,10 +19,10 @@ Lang { ConfigArchive = archive ConfigProcess = processing ConfigAll = overview - KeyManagement = Key management - KeysPublic = public keys - KeysSecret = secret keys - KeysGenerate = generate key + Gnupg = Key management + GnupgPublicKeys = public keys + GnupgSecretKeys = secret keys + GnupgGenerateKey = generate key TextFiles = Text files ListSelect = Choose a list Properties = Properties of @@ -64,6 +64,9 @@ Lang { EditFile = Edit file SaveFile = Save file ResetFile = Remove customized file + DeletePublicKey = Delete public key(s) + DeleteSecretKey = Delete secret key(s) + GnupgImportKey = Import key } @@ -199,6 +202,9 @@ Lang { ListLanguage = Language of the list ListCharset = Charset of the list ModSubOverridesRemote = Hint: if both the database of subscripton moderators and of remote administrators use customized locations, then the database of subscription moderators will be used for both of them + NoPublicKeys = There are no public keys available. + NoSecretKeys = There are no secret keys available. + GnupgImportKey = Import a new key from a file: } @@ -242,5 +248,8 @@ Lang { TextFileReset = Discard customized text TextFileInfo = Useful placeholders AvailableLists = Available lists + GnupgPublicKeys = Public keys of this list + GnupgSecretKeys = Secret keys of this list + GnupgKeyImport = Import a key } } diff --git a/template/gnupg_public.cs b/template/gnupg_public.cs index bce3996..bcd2ea4 100644 --- a/template/gnupg_public.cs +++ b/template/gnupg_public.cs @@ -7,26 +7,72 @@
- + +
" + enctype="application/x-www-form-urlencoded"> - " enctype="application/x-www-form-urlencoded"> - 0 ?> -
+ +
+ + + 0 ?> + +
" + enctype="application/x-www-form-urlencoded"> + + +
  • -
  • - - + ?> + + + + + +
    - +
    + +

    +
    diff --git a/template/nav.cs b/template/nav.cs index a4dfc54..dbf2fa5 100644 --- a/template/nav.cs +++ b/template/nav.cs @@ -110,31 +110,31 @@ var:html_escape(Lang.Menue.ConfigAll) ?> - 0 - ?>
  • 0 + ?>