schleuder 3.2.2 → 3.5.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (77) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +21 -11
  3. data/Rakefile +18 -10
  4. data/bin/schleuder +2 -1
  5. data/bin/schleuder-api-daemon +3 -2
  6. data/db/migrate/20180110203100_add_sig_enc_to_headers_to_meta_defaults.rb +30 -0
  7. data/db/migrate/20180723173900_add_deliver_selfsent_to_list.rb +11 -0
  8. data/db/migrate/20190906194820_add_autocrypt_header_to_list.rb +11 -0
  9. data/db/schema.rb +4 -2
  10. data/etc/list-defaults.yml +13 -3
  11. data/etc/schleuder.yml +11 -0
  12. data/lib/schleuder-api-daemon.rb +9 -354
  13. data/lib/schleuder-api-daemon/helpers/schleuder-api-daemon-helper.rb +143 -0
  14. data/lib/schleuder-api-daemon/routes/key.rb +40 -0
  15. data/lib/schleuder-api-daemon/routes/list.rb +69 -0
  16. data/lib/schleuder-api-daemon/routes/status.rb +5 -0
  17. data/lib/schleuder-api-daemon/routes/subscription.rb +99 -0
  18. data/lib/schleuder-api-daemon/routes/version.rb +5 -0
  19. data/lib/schleuder.rb +12 -3
  20. data/lib/schleuder/cli.rb +33 -3
  21. data/lib/schleuder/cli/subcommand_fix.rb +1 -1
  22. data/lib/schleuder/conf.rb +7 -1
  23. data/lib/schleuder/errors/active_model_error.rb +2 -5
  24. data/lib/schleuder/errors/decryption_failed.rb +2 -7
  25. data/lib/schleuder/errors/key_adduid_failed.rb +1 -5
  26. data/lib/schleuder/errors/key_generation_failed.rb +1 -8
  27. data/lib/schleuder/errors/keyword_admin_only.rb +1 -5
  28. data/lib/schleuder/errors/list_not_found.rb +1 -5
  29. data/lib/schleuder/errors/listdir_problem.rb +2 -7
  30. data/lib/schleuder/errors/loading_list_settings_failed.rb +2 -5
  31. data/lib/schleuder/errors/message_empty.rb +1 -5
  32. data/lib/schleuder/errors/message_not_from_admin.rb +2 -5
  33. data/lib/schleuder/errors/message_sender_not_subscribed.rb +2 -5
  34. data/lib/schleuder/errors/message_too_big.rb +2 -5
  35. data/lib/schleuder/errors/message_unauthenticated.rb +1 -4
  36. data/lib/schleuder/errors/message_unencrypted.rb +2 -5
  37. data/lib/schleuder/errors/message_unsigned.rb +2 -5
  38. data/lib/schleuder/errors/too_many_keys.rb +1 -8
  39. data/lib/schleuder/filters/{request_filter.rb → post_decryption/10_request.rb} +0 -0
  40. data/lib/schleuder/filters/{max_message_size.rb → post_decryption/20_max_message_size.rb} +0 -0
  41. data/lib/schleuder/filters/{forward_filter.rb → post_decryption/30_forward_to_owner.rb} +0 -0
  42. data/lib/schleuder/filters/post_decryption/40_receive_admin_only.rb +10 -0
  43. data/lib/schleuder/filters/post_decryption/50_receive_authenticated_only.rb +10 -0
  44. data/lib/schleuder/filters/post_decryption/60_receive_signed_only.rb +10 -0
  45. data/lib/schleuder/filters/post_decryption/70_receive_encrypted_only.rb +10 -0
  46. data/lib/schleuder/filters/post_decryption/80_receive_from_subscribed_emailaddresses_only.rb +10 -0
  47. data/lib/schleuder/filters/post_decryption/90_strip_html_from_alternative_if_keywords_present.rb +21 -0
  48. data/lib/schleuder/filters/{bounces_filter.rb → pre_decryption/10_forward_bounce_to_admins.rb} +0 -0
  49. data/lib/schleuder/filters/{forward_incoming.rb → pre_decryption/20_forward_all_incoming_to_admins.rb} +0 -0
  50. data/lib/schleuder/filters/{send_key_filter.rb → pre_decryption/30_send_key.rb} +0 -0
  51. data/lib/schleuder/filters/{hotmail_message_filter.rb → pre_decryption/40_fix_exchange_messages.rb} +5 -3
  52. data/lib/schleuder/filters/{strip_alternative_filter.rb → pre_decryption/50_strip_html_from_alternative.rb} +1 -1
  53. data/lib/schleuder/filters_runner.rb +41 -31
  54. data/lib/schleuder/gpgme/ctx.rb +24 -3
  55. data/lib/schleuder/gpgme/import_status.rb +13 -7
  56. data/lib/schleuder/gpgme/key.rb +8 -0
  57. data/lib/schleuder/list.rb +26 -4
  58. data/lib/schleuder/logger_notifications.rb +8 -1
  59. data/lib/schleuder/mail/encrypted_part.rb +14 -0
  60. data/lib/schleuder/mail/gpg.rb +15 -0
  61. data/lib/schleuder/mail/message.rb +97 -49
  62. data/lib/schleuder/plugins/attach_listkey.rb +6 -10
  63. data/lib/schleuder/plugins/key_management.rb +34 -26
  64. data/lib/schleuder/plugins/resend.rb +14 -11
  65. data/lib/schleuder/plugins/subscription_management.rb +70 -3
  66. data/lib/schleuder/runner.rb +49 -10
  67. data/lib/schleuder/subscription.rb +5 -9
  68. data/lib/schleuder/validators/fingerprint_validator.rb +1 -1
  69. data/lib/schleuder/version.rb +1 -1
  70. data/locales/de.yml +101 -9
  71. data/locales/en.yml +107 -11
  72. metadata +72 -34
  73. data/lib/schleuder/errors/file_not_found.rb +0 -14
  74. data/lib/schleuder/errors/invalid_listname.rb +0 -13
  75. data/lib/schleuder/errors/list_exists.rb +0 -13
  76. data/lib/schleuder/errors/unknown_list_option.rb +0 -14
  77. data/lib/schleuder/filters/auth_filter.rb +0 -39
@@ -1,3 +1,3 @@
1
1
  module Schleuder
2
- VERSION = '3.2.2'
2
+ VERSION = '3.5.2'
3
3
  end
@@ -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
- import_result: "Import-Ergebnis:\n"
86
+ no_imports: In deiner Email konnten keine Schlüssel gefunden werden. :(
91
87
  key_import_status:
92
- imported: importiert
93
- updated: aktualisiert
94
- unchanged: unverändert
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 (%{num_keys} Schlüssel gefunden und unverschlüsseltes Senden verboten).
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:
@@ -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: "Deleted: %{key_string}"
89
- not_deletable: "May not be deleted: %{key_string}"
90
- import_result: "Import result:\n"
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: imported
93
- updated: updated
94
- unchanged: unchanged
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 (%{num_keys} keys found and unencrypted sending disallowed).
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.2.2
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: 2018-02-06 00:00:00.000000000 Z
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.13
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.13
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.6.0
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.6.0
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.0
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.0
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.1'
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.1'
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: '1'
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: '1'
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: factory_girl
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.nadir.org/docs/#installation> for details.)
247
- email: schleuder@nadir.org
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/errors/unknown_list_option.rb
309
- - lib/schleuder/filters/auth_filter.rb
310
- - lib/schleuder/filters/bounces_filter.rb
311
- - lib/schleuder/filters/forward_filter.rb
312
- - lib/schleuder/filters/forward_incoming.rb
313
- - lib/schleuder/filters/hotmail_message_filter.rb
314
- - lib/schleuder/filters/max_message_size.rb
315
- - lib/schleuder/filters/request_filter.rb
316
- - lib/schleuder/filters/send_key_filter.rb
317
- - lib/schleuder/filters/strip_alternative_filter.rb
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.nadir.org/
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: '0'
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: "[none]"
373
- rubygems_version: 2.7.3
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 mailinglist with remailing-capabilities.
414
+ summary: Schleuder is a gpg-enabled mailing list manager with remailing-capabilities.
377
415
  test_files: []