schleuder 3.2.2 → 3.5.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +21 -11
- data/Rakefile +18 -10
- data/bin/schleuder +2 -1
- data/bin/schleuder-api-daemon +3 -2
- data/db/migrate/20180110203100_add_sig_enc_to_headers_to_meta_defaults.rb +30 -0
- data/db/migrate/20180723173900_add_deliver_selfsent_to_list.rb +11 -0
- data/db/migrate/20190906194820_add_autocrypt_header_to_list.rb +11 -0
- data/db/schema.rb +4 -2
- data/etc/list-defaults.yml +13 -3
- data/etc/schleuder.yml +11 -0
- data/lib/schleuder-api-daemon.rb +9 -354
- data/lib/schleuder-api-daemon/helpers/schleuder-api-daemon-helper.rb +143 -0
- data/lib/schleuder-api-daemon/routes/key.rb +40 -0
- data/lib/schleuder-api-daemon/routes/list.rb +69 -0
- data/lib/schleuder-api-daemon/routes/status.rb +5 -0
- data/lib/schleuder-api-daemon/routes/subscription.rb +99 -0
- data/lib/schleuder-api-daemon/routes/version.rb +5 -0
- data/lib/schleuder.rb +12 -3
- data/lib/schleuder/cli.rb +33 -3
- data/lib/schleuder/cli/subcommand_fix.rb +1 -1
- data/lib/schleuder/conf.rb +7 -1
- data/lib/schleuder/errors/active_model_error.rb +2 -5
- data/lib/schleuder/errors/decryption_failed.rb +2 -7
- data/lib/schleuder/errors/key_adduid_failed.rb +1 -5
- data/lib/schleuder/errors/key_generation_failed.rb +1 -8
- data/lib/schleuder/errors/keyword_admin_only.rb +1 -5
- data/lib/schleuder/errors/list_not_found.rb +1 -5
- data/lib/schleuder/errors/listdir_problem.rb +2 -7
- data/lib/schleuder/errors/loading_list_settings_failed.rb +2 -5
- data/lib/schleuder/errors/message_empty.rb +1 -5
- data/lib/schleuder/errors/message_not_from_admin.rb +2 -5
- data/lib/schleuder/errors/message_sender_not_subscribed.rb +2 -5
- data/lib/schleuder/errors/message_too_big.rb +2 -5
- data/lib/schleuder/errors/message_unauthenticated.rb +1 -4
- data/lib/schleuder/errors/message_unencrypted.rb +2 -5
- data/lib/schleuder/errors/message_unsigned.rb +2 -5
- data/lib/schleuder/errors/too_many_keys.rb +1 -8
- data/lib/schleuder/filters/{request_filter.rb → post_decryption/10_request.rb} +0 -0
- data/lib/schleuder/filters/{max_message_size.rb → post_decryption/20_max_message_size.rb} +0 -0
- data/lib/schleuder/filters/{forward_filter.rb → post_decryption/30_forward_to_owner.rb} +0 -0
- data/lib/schleuder/filters/post_decryption/40_receive_admin_only.rb +10 -0
- data/lib/schleuder/filters/post_decryption/50_receive_authenticated_only.rb +10 -0
- data/lib/schleuder/filters/post_decryption/60_receive_signed_only.rb +10 -0
- data/lib/schleuder/filters/post_decryption/70_receive_encrypted_only.rb +10 -0
- data/lib/schleuder/filters/post_decryption/80_receive_from_subscribed_emailaddresses_only.rb +10 -0
- data/lib/schleuder/filters/post_decryption/90_strip_html_from_alternative_if_keywords_present.rb +21 -0
- data/lib/schleuder/filters/{bounces_filter.rb → pre_decryption/10_forward_bounce_to_admins.rb} +0 -0
- data/lib/schleuder/filters/{forward_incoming.rb → pre_decryption/20_forward_all_incoming_to_admins.rb} +0 -0
- data/lib/schleuder/filters/{send_key_filter.rb → pre_decryption/30_send_key.rb} +0 -0
- data/lib/schleuder/filters/{hotmail_message_filter.rb → pre_decryption/40_fix_exchange_messages.rb} +5 -3
- data/lib/schleuder/filters/{strip_alternative_filter.rb → pre_decryption/50_strip_html_from_alternative.rb} +1 -1
- data/lib/schleuder/filters_runner.rb +41 -31
- data/lib/schleuder/gpgme/ctx.rb +24 -3
- data/lib/schleuder/gpgme/import_status.rb +13 -7
- data/lib/schleuder/gpgme/key.rb +8 -0
- data/lib/schleuder/list.rb +26 -4
- data/lib/schleuder/logger_notifications.rb +8 -1
- data/lib/schleuder/mail/encrypted_part.rb +14 -0
- data/lib/schleuder/mail/gpg.rb +15 -0
- data/lib/schleuder/mail/message.rb +97 -49
- data/lib/schleuder/plugins/attach_listkey.rb +6 -10
- data/lib/schleuder/plugins/key_management.rb +34 -26
- data/lib/schleuder/plugins/resend.rb +14 -11
- data/lib/schleuder/plugins/subscription_management.rb +70 -3
- data/lib/schleuder/runner.rb +49 -10
- data/lib/schleuder/subscription.rb +5 -9
- data/lib/schleuder/validators/fingerprint_validator.rb +1 -1
- data/lib/schleuder/version.rb +1 -1
- data/locales/de.yml +101 -9
- data/locales/en.yml +107 -11
- metadata +72 -34
- data/lib/schleuder/errors/file_not_found.rb +0 -14
- data/lib/schleuder/errors/invalid_listname.rb +0 -13
- data/lib/schleuder/errors/list_exists.rb +0 -13
- data/lib/schleuder/errors/unknown_list_option.rb +0 -14
- data/lib/schleuder/filters/auth_filter.rb +0 -39
data/lib/schleuder/version.rb
CHANGED
data/locales/de.yml
CHANGED
@@ -52,8 +52,6 @@ de:
|
|
52
52
|
list_not_found: "Fehler: Keine Liste zu dieser Adresse gefunden: '%{email}'."
|
53
53
|
no_linebreaks: "Darf keine Zeilenumbrüche enthalten"
|
54
54
|
invalid_characters: "enthält ungültige Zeichen"
|
55
|
-
invalid_listname: "Fehler: '%{email}' ist kein gültige Listen-Adresse."
|
56
|
-
list_exists: Es existiert bereits eine Liste mit der Adresse '%{email}'.
|
57
55
|
listdir_problem:
|
58
56
|
message: "Problem mit dem Listen-Verzeichnis: '%{dir}' %{problem}."
|
59
57
|
not_existing: existiert nicht
|
@@ -65,12 +63,10 @@ de:
|
|
65
63
|
key_generation_failed: Das Erzeugen des OpenPGP-Schlüsselpaares für %{listname} ist aus unbekannten Gründen fehlgeschlagen. Bitte prüfe das Listen-Verzeichnis ('%{listdir}') und die Log-Dateien.
|
66
64
|
key_adduid_failed: "Das Hinzufügen einer User-ID zum OpenPGP-Schlüssel ist mit folgender Meldung fehlgeschlagen:\n%{errmsg}"
|
67
65
|
too_many_keys: "Fehler: In %{listdir} existieren mehrere OpenPGP-Schlüssel für %{listname}. Bitte lösche alle bis auf einen."
|
68
|
-
unknown_list_option: "Unbekannte Option in %{config_file}: '%{option}'."
|
69
66
|
loading_list_settings_failed: "%{config_file} konnte nicht eingelesen werden, bitte Formatierung auf gültiges YAML prüfen."
|
70
67
|
message_too_big: "Deine Email war zu groß. Erlaubt sind für diese Liste %{allowed_size}KB."
|
71
68
|
must_be_boolean: "muss true oder false sein"
|
72
69
|
must_be_greater_than_zero: "muss größer als null sein"
|
73
|
-
file_not_found: "Die Datei existiert nicht: '%{file}'."
|
74
70
|
not_pgp_mime: "Deine Email war nicht im pgp/mime-Format verschlüsselt."
|
75
71
|
delivery_error: "Beim Versenden einer Email an %{email} ist der folgende Fehler aufgetreten: %{error}"
|
76
72
|
no_match_for: "Keine Treffer für %{input}"
|
@@ -87,14 +83,47 @@ de:
|
|
87
83
|
key_management:
|
88
84
|
deleted: "Gelöscht: %{key_string}"
|
89
85
|
not_deletable: "Darf nicht gelöscht werden: %{key_string}"
|
90
|
-
|
86
|
+
no_imports: In deiner Email konnten keine Schlüssel gefunden werden. :(
|
91
87
|
key_import_status:
|
92
|
-
imported:
|
93
|
-
|
94
|
-
|
88
|
+
imported: |
|
89
|
+
Dieser Schlüssel wurde neu hinzugefügt:
|
90
|
+
%{key_oneline}
|
91
|
+
updated: |
|
92
|
+
Dieser Schlüssel wurde aktualisiert:
|
93
|
+
%{key_oneline}
|
94
|
+
unchanged: |
|
95
|
+
Dieser Schlüssel wurde nicht verändert:
|
96
|
+
%{key_oneline}
|
97
|
+
error: |
|
98
|
+
Der Schlüssel mit diesem Fingerabdruck konnte aus unbekanntem Grund nicht hinzugefügt werden:
|
99
|
+
%{fingerprint}
|
95
100
|
matching_keys_intro: Alle Schlüssel aus dem Schlüsselring der Liste, die '%{input}' enthalten, sind an diese Email angehängt.
|
101
|
+
delete_key_requires_arguments: |
|
102
|
+
Fehler: Du hast zu dem Schlüsselwort 'DELETE-KEY' keinen Wert angegeben.
|
103
|
+
|
104
|
+
Ein Wert ist nötig, weitere sind optional. Bspw.:
|
105
|
+
X-DELETE-KEY: 0xB3D190D5235C74E1907EACFE898F2C91E2E6E1F3
|
106
|
+
|
107
|
+
Oder, um mehrere Schlüssel auf einmal zu löschen:
|
108
|
+
X-DELETE-KEY: 0xB3D190D5235C74E1907EACFE898F2C91E2E6E1F3 a-subscription@hostname
|
109
|
+
|
110
|
+
Die Schlüssel werden nur gelöscht, wenn sie der einzige Treffer für den jeweiligen Wert sind.
|
111
|
+
fetch_key_requires_arguments: |
|
112
|
+
Fehler: Du hast zu dem Schlüsselwort 'FETCH-KEY' keinen Wert angegeben.
|
113
|
+
|
114
|
+
Ein Wert ist nötig, weitere sind optional. Jeder Wert kann eine URL sein, die via HTTP geladen wird, oder ein Text, mit dem auf den OpenPGP-Schlüsselserver gesucht wird.
|
115
|
+
Bspw., um einen Schlüssel per fingerprint vom Schlüsselserver zu holen:
|
116
|
+
X-FETCH-KEY: 0xB3D190D5235C74E1907EACFE898F2C91E2E6E1F3
|
117
|
+
|
118
|
+
Oder, um zwei Schlüssel per Email-Adresse vom Schlüsselserver zu holen:
|
119
|
+
X-FETCH-KEY: a-subscription@hostname anotherone@example.org
|
120
|
+
|
121
|
+
Oder, um einen Schlüssel per HTTP von einem Server zu laden:
|
122
|
+
X-FETCH-KEY: https://example.org/keys/mykey.asc
|
96
123
|
resend:
|
97
|
-
not_resent_no_keys: Resending an <%{email}> fehlgeschlagen (%{
|
124
|
+
not_resent_no_keys: Resending an <%{email}> fehlgeschlagen (%{all_keys} Schlüssel gefunden, davon %{usable_keys} nutzbar. Unverschlüsseltes Senden verboten).
|
125
|
+
not_resent_encrypted_no_keys: Verschlüsseltes Resending an <%{email}> fehlgeschlagen (%{all_keys} Schlüssel gefunden, davon %{usable_keys} nutzbar).
|
126
|
+
aborted: Resending an <%{email}> abgebrochen aufgrund anderer Probleme.
|
98
127
|
encrypted_to: Verschlüsselt an
|
99
128
|
unencrypted_to: Unverschlüsselt an
|
100
129
|
invalid_recipient: "Ungültige Emailadresse für resend: %{address}"
|
@@ -105,6 +134,8 @@ de:
|
|
105
134
|
unsubscribing_failed: |
|
106
135
|
Abo für %{email} nicht gelöscht:
|
107
136
|
%{errors}
|
137
|
+
cannot_unsubscribe_last_admin: |
|
138
|
+
%{email} ist das einzige admin-Abo für diese Liste, daher kann es nicht gelöscht werden.
|
108
139
|
subscribed: |
|
109
140
|
Abo für %{email} mit diesen Werten eingetragen:
|
110
141
|
|
@@ -121,6 +152,59 @@ de:
|
|
121
152
|
setting_fingerprint_failed: |
|
122
153
|
Fingerabdruck für %{email} konnte nicht auf %{fingerprint} gesetzt werden:
|
123
154
|
%{errors}.
|
155
|
+
set_fingerprint_requires_valid_fingerprint: |
|
156
|
+
Du hast zu dem Schlüsselwort 'SET-FINGERPRINT' keinen gültigen Wert angegeben.
|
157
|
+
|
158
|
+
Es wurde der folgende Wert erkannt: %{fingerprint}
|
159
|
+
|
160
|
+
Benötigt werden ein oder zwei Werte, bspw.:
|
161
|
+
X-SET-FINGERPRINT: 0xB3D190D5235C74E1907EACFE898F2C91E2E6E1F3
|
162
|
+
|
163
|
+
oder (als admin):
|
164
|
+
X-SET-FINGERPRINT: subscription2@hostname 0xB3D190D5235C74E1907EACFE898F2C91E2E6E1F3
|
165
|
+
|
166
|
+
Wobei der Fingerprint in der gesamten Länge (40 Zeichen) angegeben werden muss. Optional mit 0x als Präfix.
|
167
|
+
|
168
|
+
Um einen Fingerprint zu entfernen kannst du das Schlüsselwort 'UNSET-FINGERPRINT' verwenden.
|
169
|
+
set_fingerprint_requires_arguments: |
|
170
|
+
Du hast zu dem Schlüsselwort 'SET-FINGERPRINT' keinen Wert angegeben.
|
171
|
+
|
172
|
+
Benötigt werden ein oder zwei Werte, bspw.:
|
173
|
+
X-SET-FINGERPRINT: 0xB3D190D5235C74E1907EACFE898F2C91E2E6E1F3
|
174
|
+
|
175
|
+
oder (als admin):
|
176
|
+
X-SET-FINGERPRINT: subscription2@hostname 0xB3D190D5235C74E1907EACFE898F2C91E2E6E1F3
|
177
|
+
|
178
|
+
Um einen Fingerprint zu entfernen kannst du das Schlüsselwort 'UNSET-FINGERPRINT' verwenden.
|
179
|
+
unset_fingerprint_only_self: Nur admins dürfen den Fingerabdruck für andere Abos festlegen.
|
180
|
+
fingerprint_unset: Fingerabdruck für %{email} wurde entfernt.
|
181
|
+
unsetting_fingerprint_failed: |
|
182
|
+
Fingerabdruck für %{email} konnte nicht entfernt werden:
|
183
|
+
%{errors}.
|
184
|
+
unset_fingerprint_requires_arguments: |
|
185
|
+
Du hast zu dem Schlüsselwort 'UNSET-FINGERPRINT' keinen Wert angegeben.
|
186
|
+
|
187
|
+
Benötigt werden ein Wert, bspw.:
|
188
|
+
X-UNSET-FINGERPRINT: subscription2@hostname
|
189
|
+
|
190
|
+
Als admin musst du um deinen eigenen Fingerabdruck zu entfernen, noch zusätzlich das Argument force mitgeben. bspw.:
|
191
|
+
X-UNSET-FINGERPRINT: adminsubscription2@hostname force
|
192
|
+
subscribe_requires_arguments: |
|
193
|
+
Fehler: Du hast zu dem Schlüsselwort 'SUBSCRIBE' keinen Wert angegeben.
|
194
|
+
|
195
|
+
Mindestens ein Wert ist nötig, drei weitere sind optional. Bspw.:
|
196
|
+
X-SUBSCRIBE: new-subscription@hostname
|
197
|
+
|
198
|
+
Oder, um den Schlüssel für das neue Abo zuzuweisen:
|
199
|
+
X-SUBSCRIBE: new-subscription@hostname 0xB3D190D5235C74E1907EACFE898F2C91E2E6E1F3
|
200
|
+
|
201
|
+
Oder, um den Schlüssel zuzuweisen, und das Abo zum admin zu machen:
|
202
|
+
X-SUBSCRIBE: new-subscription@hostname 0xB3D190D5235C74E1907EACFE898F2C91E2E6E1F3 true
|
203
|
+
|
204
|
+
Oder, um den Schlüssel zuzuweisen, das Abo zum admin zu machen, und die Zustellung von Listen-Emails für dieses Abo abzuschalten:
|
205
|
+
X-SUBSCRIBE: new-subscription@hostname 0xB3D190D5235C74E1907EACFE898F2C91E2E6E1F3 true false
|
206
|
+
|
207
|
+
Wenn du die optionalen Werte weglässt hat das Abo keinen Schlüssel zugewiesen, ist nicht admin, und hat die Zustellung von Listen-Email aktiviert.
|
124
208
|
signatures_attached: Die Signaturen hängen an.
|
125
209
|
list_management:
|
126
210
|
no_logfile: Keine Log-Datei für %{listname} gefunden. (Das kann an einem hohem Log-Level und der Abwesenheit von Fehlern liegen.)
|
@@ -168,7 +252,15 @@ de:
|
|
168
252
|
fetch_key:
|
169
253
|
invalid_input: "Ungültige Angabe. Gültig sind: URLs, OpenPGP-Fingerabdrücke, oder Emailadressen."
|
170
254
|
pseudoheaders:
|
255
|
+
scrubbed_message: Diese Email enthielt ungültige Zeichen, die aus Verarbeitungsgründen möglicherweise entfernt wurden.
|
171
256
|
stripped_html_from_multialt: Diese Email enthielt einen alternativen HTML-Teil, der PGP-Daten beinhaltete. Der HTML-Teil wurde entfernt, um die Email sauberer analysieren zu können.
|
257
|
+
stripped_html_from_multialt_with_keywords: Diese Email enthielt Schlüsselwörter und einen alternativen HTML-Teil. Der HTML-Teil wurde entfernt, um zu verhindern dass diese Schlüsselwörter Aussenstehenden bekannt werden.
|
258
|
+
signature_states:
|
259
|
+
unknown: "Unbekannte Signatur von unbekanntem Schlüssel 0x%{fingerprint}"
|
260
|
+
unsigned: "Unsigniert"
|
261
|
+
encryption_states:
|
262
|
+
encrypted: "Verschlüsselt"
|
263
|
+
unencrypted: "Unverschlüsselt"
|
172
264
|
|
173
265
|
activerecord:
|
174
266
|
errors:
|
data/locales/en.yml
CHANGED
@@ -51,9 +51,7 @@ en:
|
|
51
51
|
In case you only sent keywords please note that administrative keywords must be sent to the "request"-address (<%{request_address}>) in order to be respected.
|
52
52
|
no_linebreaks: "must not include line-breaks"
|
53
53
|
list_not_found: "Error: No list found with this address: '%{email}'."
|
54
|
-
invalid_listname: "Error: '%{email}' is not a valid address."
|
55
54
|
invalid_characters: "contains invalid characters"
|
56
|
-
list_exists: A list with address '%{email}' is already present.
|
57
55
|
listdir_problem:
|
58
56
|
message: "There's a problem with the list-directory: '%{dir}' %{problem}."
|
59
57
|
not_existing: does not exist
|
@@ -65,12 +63,10 @@ en:
|
|
65
63
|
key_generation_failed: Generating the OpenPGP key pair for %{listname} failed for unknown reasons. Please check the list-directory ('%{listdir}') and the log-files.
|
66
64
|
key_adduid_failed: "Adding a user-ID to the OpenPGP key failed with this message:\n%{errmsg}"
|
67
65
|
too_many_keys: "Error: In %{listdir} there's more than one matching OpenPGP-key for %{listname}. Please delete all but one."
|
68
|
-
unknown_list_option: "Unknown option in %{config_file}: '%{option}'."
|
69
66
|
loading_list_settings_failed: "%{config_file} could not be parsed, please check its formatting to be valid YAML."
|
70
67
|
message_too_big: "Your message was too big. Allowed are up to %{allowed_size}KB."
|
71
68
|
must_be_boolean: "must be true or false"
|
72
69
|
must_be_greater_than_zero: "must be a number greater than zero"
|
73
|
-
file_not_found: "File not found: '%{file}'."
|
74
70
|
not_pgp_mime: "Message was not encrypted in the pgp/mime-format."
|
75
71
|
delivery_error: "The following error occurred while sending a message to %{email}: %{error}"
|
76
72
|
no_match_for: "No match found for %{input}"
|
@@ -85,16 +81,53 @@ en:
|
|
85
81
|
keyword_admin_notify_lists: "%{signer} used the keyword '%{keyword}' with the values '%{arguments}' in a message sent to the list."
|
86
82
|
keyword_admin_notify_lists_without_arguments: "%{signer} used the keyword '%{keyword}' in a message sent to the list."
|
87
83
|
key_management:
|
88
|
-
deleted:
|
89
|
-
|
90
|
-
|
84
|
+
deleted: |
|
85
|
+
This key was deleted:
|
86
|
+
%{key_string}
|
87
|
+
not_deletable: |
|
88
|
+
This key may not be deleted:
|
89
|
+
%{key_string}
|
90
|
+
no_imports: In the message you sent us, no keys could be found. :(
|
91
91
|
key_import_status:
|
92
|
-
imported:
|
93
|
-
|
94
|
-
|
92
|
+
imported: |
|
93
|
+
This key was newly added:
|
94
|
+
%{key_oneline}
|
95
|
+
updated: |
|
96
|
+
This key was updated:
|
97
|
+
%{key_oneline}
|
98
|
+
unchanged: |
|
99
|
+
This key was not changed:
|
100
|
+
%{key_oneline}
|
101
|
+
error: |
|
102
|
+
The key with this fingerprint could not be added due to an unknown error:
|
103
|
+
%{fingerprint}
|
95
104
|
matching_keys_intro: All keys from the list's keyring matching '%{input}' are attached to this message.
|
105
|
+
delete_key_requires_arguments: |
|
106
|
+
Error: You did not send any arguments for the keyword 'DELETE-KEY'.
|
107
|
+
|
108
|
+
One is required, more are optional, e.g.:
|
109
|
+
X-DELETE-KEY: 0xB3D190D5235C74E1907EACFE898F2C91E2E6E1F3
|
110
|
+
|
111
|
+
Or, to delete multiple keys at once:
|
112
|
+
X-DELETE-KEY: 0xB3D190D5235C74E1907EACFE898F2C91E2E6E1F3 a-subscription@hostname
|
113
|
+
|
114
|
+
The matching keys will be deleted only if the argument matches them distinctly.
|
115
|
+
fetch_key_requires_arguments: |
|
116
|
+
Error: You did not send any arguments for the keyword 'FETCH-KEY'.
|
117
|
+
|
118
|
+
One is required, more are optional. Each argument can be an URL to fetch via HTTP, or a string to look up at the OpenPGP-keyservers.
|
119
|
+
E.g., to fetch a key by fingerprint from the keyserver:
|
120
|
+
X-FETCH-KEY: 0xB3D190D5235C74E1907EACFE898F2C91E2E6E1F3
|
121
|
+
|
122
|
+
Or, to fetch two keys by email-address from the keyserver:
|
123
|
+
X-FETCH-KEY: a-subscription@hostname anotherone@example.org
|
124
|
+
|
125
|
+
Or, to fetch a key keys by URL:
|
126
|
+
X-FETCH-KEY: https://example.org/keys/mykey.asc
|
96
127
|
resend:
|
97
|
-
not_resent_no_keys: Resending to <%{email}> failed (%{
|
128
|
+
not_resent_no_keys: Resending to <%{email}> failed (%{all_keys} keys found, of which %{usable_keys} can be used. Unencrypted sending not allowed).
|
129
|
+
not_resent_encrypted_no_keys: Resending as encrypted email to <%{email}> failed (%{all_keys} keys found, of which %{usable_keys} can be used).
|
130
|
+
aborted: Resending to <%{email}> aborted due to other errors.
|
98
131
|
encrypted_to: Encrypted to
|
99
132
|
unencrypted_to: Unencrypted to
|
100
133
|
invalid_recipient: "Invalid email-address for resending: %{address}"
|
@@ -105,6 +138,8 @@ en:
|
|
105
138
|
unsubscribing_failed: |
|
106
139
|
Unsubscribing %{email} failed:
|
107
140
|
%{errors}
|
141
|
+
cannot_unsubscribe_last_admin: |
|
142
|
+
%{email} is the only admin for this list, thus it can not be unsubscribed.
|
108
143
|
subscribed: |
|
109
144
|
%{email} has been subscribed with these attributes:
|
110
145
|
|
@@ -121,6 +156,59 @@ en:
|
|
121
156
|
setting_fingerprint_failed: |
|
122
157
|
Setting fingerprint for %{email} to %{fingerprint} failed:
|
123
158
|
%{errors}.
|
159
|
+
set_fingerprint_requires_valid_fingerprint: |
|
160
|
+
You did not send a valid fingerprint for the keyword 'SET-FINGERPRINT'
|
161
|
+
|
162
|
+
The following value was detected: %{fingerprint}
|
163
|
+
|
164
|
+
One or two are required, e.g.:
|
165
|
+
X-SET-FINGERPRINT: 0xB3D190D5235C74E1907EACFE898F2C91E2E6E1F3
|
166
|
+
|
167
|
+
or (as an admin):
|
168
|
+
X-SET-FINGERPRINT: subscription2@hostname 0xB3D190D5235C74E1907EACFE898F2C91E2E6E1F3
|
169
|
+
|
170
|
+
While the fingerprint must be passed in the full length (40 characters). Optionally prefixed with 0x.
|
171
|
+
|
172
|
+
To remove a fingerprint you can use the keyword 'UNSET-FINGERPRINT'
|
173
|
+
set_fingerprint_requires_arguments: |
|
174
|
+
Error: You did not send any arguments for the keyword 'SET-FINGERPRINT'.
|
175
|
+
|
176
|
+
One or two are required, e.g.:
|
177
|
+
X-SET-FINGERPRINT: 0xB3D190D5235C74E1907EACFE898F2C91E2E6E1F3
|
178
|
+
|
179
|
+
or (as an admin):
|
180
|
+
X-SET-FINGERPRINT: subscription2@hostname 0xB3D190D5235C74E1907EACFE898F2C91E2E6E1F3
|
181
|
+
|
182
|
+
To remove a fingerprint you can use the keyword 'UNSET-FINGERPRINT'
|
183
|
+
unset_fingerprint_only_self: Only admins may remove fingerprints of subscriptions other than their own.
|
184
|
+
unset_fingerprint_requires_arguments: |
|
185
|
+
Error: You did not send any arguments for the keyword 'UNSET-FINGERPRINT'
|
186
|
+
|
187
|
+
One value is required, e.g.:
|
188
|
+
X-UNSET-FINGERPRINT: subscription2@hostname
|
189
|
+
|
190
|
+
As an admin to unset your own fingerprint you must additionally pass the argument force. E.g.:
|
191
|
+
X-UNSET-FINGERPRINT: adminsubscription2@hostname force
|
192
|
+
fingerprint_unset: Fingerprint for %{email} removed.
|
193
|
+
unsetting_fingerprint_failed: |
|
194
|
+
Removing fingerprint for %{email} failed:
|
195
|
+
%{errors}.
|
196
|
+
subscribe_requires_arguments: |
|
197
|
+
Error: You did not send any arguments for the keyword 'SUBSCRIBE'.
|
198
|
+
|
199
|
+
At least one argument is required, three more are optional. E.g.:
|
200
|
+
X-SUBSCRIBE: new-subscription@hostname
|
201
|
+
|
202
|
+
Or, defining the key to use for the new subscription:
|
203
|
+
X-SUBSCRIBE: new-subscription@hostname 0xB3D190D5235C74E1907EACFE898F2C91E2E6E1F3
|
204
|
+
|
205
|
+
Or, defining the key to use, and setting this subscription to be an admin:
|
206
|
+
X-SUBSCRIBE: new-subscription@hostname 0xB3D190D5235C74E1907EACFE898F2C91E2E6E1F3 true
|
207
|
+
|
208
|
+
Or, defining the key to use, setting this subscription as admin, and disabling the delivery of list-emails to this subscription:
|
209
|
+
X-SUBSCRIBE: new-subscription@hostname 0xB3D190D5235C74E1907EACFE898F2C91E2E6E1F3 true false
|
210
|
+
|
211
|
+
If you omit the optional arguments, the subscription has no key assigned, is not an admin, and has the delivery of list-emails enabled.
|
124
212
|
signatures_attached: Find the signatures attached.
|
125
213
|
list_management:
|
126
214
|
no_logfile: No logfile could be found for %{listname}. (This might be caused by a high log-level and the absence of errors.)
|
@@ -168,7 +256,15 @@ en:
|
|
168
256
|
fetch_key:
|
169
257
|
invalid_input: "Invalid input. Allowed are: URLs, OpenPGP-fingerprints, or email-addresses."
|
170
258
|
pseudoheaders:
|
259
|
+
scrubbed_message: This message included invalid characters, which might have been removed to be able to process the message properly.
|
171
260
|
stripped_html_from_multialt: This message included an alternating HTML-part that contained PGP-data. The HTML-part was removed to enable parsing the message more properly.
|
261
|
+
stripped_html_from_multialt_with_keywords: This message included keywords and an alternating HTML-part. The HTML-part was removed to prevent the disclosure of these keywords to third parties.
|
262
|
+
signature_states:
|
263
|
+
unknown: "Unknown signature by unknown key 0x%{fingerprint}"
|
264
|
+
unsigned: "Unsigned"
|
265
|
+
encryption_states:
|
266
|
+
encrypted: "Encrypted"
|
267
|
+
unencrypted: "Unencrypted"
|
172
268
|
|
173
269
|
activerecord:
|
174
270
|
errors:
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: schleuder
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
4
|
+
version: 3.5.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- schleuder dev team
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-06-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: gpgme
|
@@ -19,7 +19,7 @@ dependencies:
|
|
19
19
|
version: '2.0'
|
20
20
|
- - ">="
|
21
21
|
- !ruby/object:Gem::Version
|
22
|
-
version: 2.0.
|
22
|
+
version: 2.0.19
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -29,49 +29,55 @@ dependencies:
|
|
29
29
|
version: '2.0'
|
30
30
|
- - ">="
|
31
31
|
- !ruby/object:Gem::Version
|
32
|
-
version: 2.0.
|
32
|
+
version: 2.0.19
|
33
33
|
- !ruby/object:Gem::Dependency
|
34
34
|
name: mail
|
35
35
|
requirement: !ruby/object:Gem::Requirement
|
36
36
|
requirements:
|
37
37
|
- - "~>"
|
38
38
|
- !ruby/object:Gem::Version
|
39
|
-
version: 2.
|
39
|
+
version: 2.7.1
|
40
40
|
type: :runtime
|
41
41
|
prerelease: false
|
42
42
|
version_requirements: !ruby/object:Gem::Requirement
|
43
43
|
requirements:
|
44
44
|
- - "~>"
|
45
45
|
- !ruby/object:Gem::Version
|
46
|
-
version: 2.
|
46
|
+
version: 2.7.1
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: mail-gpg
|
49
49
|
requirement: !ruby/object:Gem::Requirement
|
50
50
|
requirements:
|
51
51
|
- - "~>"
|
52
52
|
- !ruby/object:Gem::Version
|
53
|
-
version: 0.3
|
53
|
+
version: '0.3'
|
54
|
+
- - "<"
|
55
|
+
- !ruby/object:Gem::Version
|
56
|
+
version: 0.4.3
|
54
57
|
type: :runtime
|
55
58
|
prerelease: false
|
56
59
|
version_requirements: !ruby/object:Gem::Requirement
|
57
60
|
requirements:
|
58
61
|
- - "~>"
|
59
62
|
- !ruby/object:Gem::Version
|
60
|
-
version: 0.3
|
63
|
+
version: '0.3'
|
64
|
+
- - "<"
|
65
|
+
- !ruby/object:Gem::Version
|
66
|
+
version: 0.4.3
|
61
67
|
- !ruby/object:Gem::Dependency
|
62
68
|
name: activerecord
|
63
69
|
requirement: !ruby/object:Gem::Requirement
|
64
70
|
requirements:
|
65
71
|
- - "~>"
|
66
72
|
- !ruby/object:Gem::Version
|
67
|
-
version: '4.
|
73
|
+
version: '4.2'
|
68
74
|
type: :runtime
|
69
75
|
prerelease: false
|
70
76
|
version_requirements: !ruby/object:Gem::Requirement
|
71
77
|
requirements:
|
72
78
|
- - "~>"
|
73
79
|
- !ruby/object:Gem::Version
|
74
|
-
version: '4.
|
80
|
+
version: '4.2'
|
75
81
|
- !ruby/object:Gem::Dependency
|
76
82
|
name: rack-test
|
77
83
|
requirement: !ruby/object:Gem::Requirement
|
@@ -106,14 +112,14 @@ dependencies:
|
|
106
112
|
requirements:
|
107
113
|
- - "~>"
|
108
114
|
- !ruby/object:Gem::Version
|
109
|
-
version:
|
115
|
+
version: 1.3.6
|
110
116
|
type: :runtime
|
111
117
|
prerelease: false
|
112
118
|
version_requirements: !ruby/object:Gem::Requirement
|
113
119
|
requirements:
|
114
120
|
- - "~>"
|
115
121
|
- !ruby/object:Gem::Version
|
116
|
-
version:
|
122
|
+
version: 1.3.6
|
117
123
|
- !ruby/object:Gem::Dependency
|
118
124
|
name: sinatra
|
119
125
|
requirement: !ruby/object:Gem::Requirement
|
@@ -170,6 +176,20 @@ dependencies:
|
|
170
176
|
- - "~>"
|
171
177
|
- !ruby/object:Gem::Version
|
172
178
|
version: '1'
|
179
|
+
- !ruby/object:Gem::Dependency
|
180
|
+
name: charlock_holmes
|
181
|
+
requirement: !ruby/object:Gem::Requirement
|
182
|
+
requirements:
|
183
|
+
- - "~>"
|
184
|
+
- !ruby/object:Gem::Version
|
185
|
+
version: 0.7.6
|
186
|
+
type: :runtime
|
187
|
+
prerelease: false
|
188
|
+
version_requirements: !ruby/object:Gem::Requirement
|
189
|
+
requirements:
|
190
|
+
- - "~>"
|
191
|
+
- !ruby/object:Gem::Version
|
192
|
+
version: 0.7.6
|
173
193
|
- !ruby/object:Gem::Dependency
|
174
194
|
name: rspec
|
175
195
|
requirement: !ruby/object:Gem::Requirement
|
@@ -199,7 +219,7 @@ dependencies:
|
|
199
219
|
- !ruby/object:Gem::Version
|
200
220
|
version: '0'
|
201
221
|
- !ruby/object:Gem::Dependency
|
202
|
-
name:
|
222
|
+
name: factory_bot
|
203
223
|
requirement: !ruby/object:Gem::Requirement
|
204
224
|
requirements:
|
205
225
|
- - ">="
|
@@ -243,8 +263,8 @@ dependencies:
|
|
243
263
|
description: |-
|
244
264
|
Schleuder is a group's email-gateway: subscribers can exchange encrypted emails among themselves, receive emails from non-subscribers and send emails to non-subscribers via the list.
|
245
265
|
|
246
|
-
(Please note: For some platforms there's a better way of installing Schleuder than `gem install`. See <https://schleuder.
|
247
|
-
email: schleuder
|
266
|
+
(Please note: For some platforms there's a better way of installing Schleuder than `gem install`. See <https://schleuder.org/schleuder/docs/server-admins.html#installation> for details.)
|
267
|
+
email: team@schleuder.org
|
248
268
|
executables:
|
249
269
|
- schleuder
|
250
270
|
- schleuder-api-daemon
|
@@ -268,6 +288,9 @@ files:
|
|
268
288
|
- db/migrate/201508261827_remove_default_mime.rb
|
269
289
|
- db/migrate/20160501172700_fix_headers_to_meta_defaults.rb
|
270
290
|
- db/migrate/20170713215059_add_internal_footer_to_list.rb
|
291
|
+
- db/migrate/20180110203100_add_sig_enc_to_headers_to_meta_defaults.rb
|
292
|
+
- db/migrate/20180723173900_add_deliver_selfsent_to_list.rb
|
293
|
+
- db/migrate/20190906194820_add_autocrypt_header_to_list.rb
|
271
294
|
- db/schema.rb
|
272
295
|
- etc/init.d/schleuder-api-daemon
|
273
296
|
- etc/list-defaults.yml
|
@@ -276,6 +299,12 @@ files:
|
|
276
299
|
- etc/schleuder.cron.weekly
|
277
300
|
- etc/schleuder.yml
|
278
301
|
- lib/schleuder-api-daemon.rb
|
302
|
+
- lib/schleuder-api-daemon/helpers/schleuder-api-daemon-helper.rb
|
303
|
+
- lib/schleuder-api-daemon/routes/key.rb
|
304
|
+
- lib/schleuder-api-daemon/routes/list.rb
|
305
|
+
- lib/schleuder-api-daemon/routes/status.rb
|
306
|
+
- lib/schleuder-api-daemon/routes/subscription.rb
|
307
|
+
- lib/schleuder-api-daemon/routes/version.rb
|
279
308
|
- lib/schleuder.rb
|
280
309
|
- lib/schleuder/cli.rb
|
281
310
|
- lib/schleuder/cli/cert.rb
|
@@ -286,12 +315,9 @@ files:
|
|
286
315
|
- lib/schleuder/errors/base.rb
|
287
316
|
- lib/schleuder/errors/decryption_failed.rb
|
288
317
|
- lib/schleuder/errors/fatal_error.rb
|
289
|
-
- lib/schleuder/errors/file_not_found.rb
|
290
|
-
- lib/schleuder/errors/invalid_listname.rb
|
291
318
|
- lib/schleuder/errors/key_adduid_failed.rb
|
292
319
|
- lib/schleuder/errors/key_generation_failed.rb
|
293
320
|
- lib/schleuder/errors/keyword_admin_only.rb
|
294
|
-
- lib/schleuder/errors/list_exists.rb
|
295
321
|
- lib/schleuder/errors/list_not_found.rb
|
296
322
|
- lib/schleuder/errors/list_property_missing.rb
|
297
323
|
- lib/schleuder/errors/listdir_problem.rb
|
@@ -305,16 +331,20 @@ files:
|
|
305
331
|
- lib/schleuder/errors/message_unsigned.rb
|
306
332
|
- lib/schleuder/errors/standard_error.rb
|
307
333
|
- lib/schleuder/errors/too_many_keys.rb
|
308
|
-
- lib/schleuder/
|
309
|
-
- lib/schleuder/filters/
|
310
|
-
- lib/schleuder/filters/
|
311
|
-
- lib/schleuder/filters/
|
312
|
-
- lib/schleuder/filters/
|
313
|
-
- lib/schleuder/filters/
|
314
|
-
- lib/schleuder/filters/
|
315
|
-
- lib/schleuder/filters/
|
316
|
-
- lib/schleuder/filters/
|
317
|
-
- lib/schleuder/filters/
|
334
|
+
- lib/schleuder/filters/post_decryption/10_request.rb
|
335
|
+
- lib/schleuder/filters/post_decryption/20_max_message_size.rb
|
336
|
+
- lib/schleuder/filters/post_decryption/30_forward_to_owner.rb
|
337
|
+
- lib/schleuder/filters/post_decryption/40_receive_admin_only.rb
|
338
|
+
- lib/schleuder/filters/post_decryption/50_receive_authenticated_only.rb
|
339
|
+
- lib/schleuder/filters/post_decryption/60_receive_signed_only.rb
|
340
|
+
- lib/schleuder/filters/post_decryption/70_receive_encrypted_only.rb
|
341
|
+
- lib/schleuder/filters/post_decryption/80_receive_from_subscribed_emailaddresses_only.rb
|
342
|
+
- lib/schleuder/filters/post_decryption/90_strip_html_from_alternative_if_keywords_present.rb
|
343
|
+
- lib/schleuder/filters/pre_decryption/10_forward_bounce_to_admins.rb
|
344
|
+
- lib/schleuder/filters/pre_decryption/20_forward_all_incoming_to_admins.rb
|
345
|
+
- lib/schleuder/filters/pre_decryption/30_send_key.rb
|
346
|
+
- lib/schleuder/filters/pre_decryption/40_fix_exchange_messages.rb
|
347
|
+
- lib/schleuder/filters/pre_decryption/50_strip_html_from_alternative.rb
|
318
348
|
- lib/schleuder/filters_runner.rb
|
319
349
|
- lib/schleuder/gpgme/ctx.rb
|
320
350
|
- lib/schleuder/gpgme/import_status.rb
|
@@ -326,6 +356,8 @@ files:
|
|
326
356
|
- lib/schleuder/listlogger.rb
|
327
357
|
- lib/schleuder/logger.rb
|
328
358
|
- lib/schleuder/logger_notifications.rb
|
359
|
+
- lib/schleuder/mail/encrypted_part.rb
|
360
|
+
- lib/schleuder/mail/gpg.rb
|
329
361
|
- lib/schleuder/mail/message.rb
|
330
362
|
- lib/schleuder/mail/parts_list.rb
|
331
363
|
- lib/schleuder/plugin_runners/base.rb
|
@@ -348,10 +380,16 @@ files:
|
|
348
380
|
- lib/schleuder/version.rb
|
349
381
|
- locales/de.yml
|
350
382
|
- locales/en.yml
|
351
|
-
homepage: https://schleuder.
|
383
|
+
homepage: https://schleuder.org/
|
352
384
|
licenses:
|
353
385
|
- GPL-3.0
|
354
|
-
metadata:
|
386
|
+
metadata:
|
387
|
+
homepage_uri: https://schleuder.org/
|
388
|
+
documentation_uri: https://schleuder.org/docs/
|
389
|
+
changelog_uri: https://0xacab.org/schleuder/schleuder/blob/master/CHANGELOG.md
|
390
|
+
source_code_uri: https://0xacab.org/schleuder/schleuder/
|
391
|
+
bug_tracker_uri: https://0xacab.org/schleuder/schleuder/issues
|
392
|
+
mailing_list_uri: https://lists.nadir.org/mailman/listinfo/schleuder-announce/
|
355
393
|
post_install_message: "\n\n Please consider additionally installing schleuder-cli
|
356
394
|
(allows to\n configure lists from the command line).\n\n To set up Schleuder
|
357
395
|
on this system please run `schleuder install`.\n\n "
|
@@ -362,16 +400,16 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
362
400
|
requirements:
|
363
401
|
- - ">="
|
364
402
|
- !ruby/object:Gem::Version
|
365
|
-
version:
|
403
|
+
version: 2.1.0
|
366
404
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
367
405
|
requirements:
|
368
406
|
- - ">="
|
369
407
|
- !ruby/object:Gem::Version
|
370
408
|
version: '0'
|
371
409
|
requirements: []
|
372
|
-
rubyforge_project:
|
373
|
-
rubygems_version: 2.7.
|
410
|
+
rubyforge_project:
|
411
|
+
rubygems_version: 2.7.6.2
|
374
412
|
signing_key:
|
375
413
|
specification_version: 4
|
376
|
-
summary: Schleuder is a gpg-enabled
|
414
|
+
summary: Schleuder is a gpg-enabled mailing list manager with remailing-capabilities.
|
377
415
|
test_files: []
|