schleuder 3.2.2 → 3.5.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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: []