Commit 78260fac authored by Dominik Hebeler's avatar Dominik Hebeler
Browse files

Merge branch '1104-change-contact-methods' into 'development'

Resolve "Change contact methods"

Closes #1104

See merge request !1820

(cherry picked from commit ec190fde)

f53d2777 removed direct mail option
34ed8a16 switched mail adress
695af99e Added possibility to attach files to message
5623cdd6 file upload and validation working properly
f3d30689 removed E-Mail Adresses from team website
9a9b216a replaced every mention of email adress with a link to contact form
69476f8a fixed dockerfile
8b2e8dbc attachments are now optional
ffcb7163 increased ingress body size
parent ed8d714f
......@@ -43,6 +43,8 @@ deploymentApiVersion: apps/v1
ingress:
annotations:
cert-manager.io/cluster-issuer: letsencrypt-prod
nginx.ingress.kubernetes.io/client-body-buffer-size: "30m"
nginx.ingress.kubernetes.io/proxy-body-size: "30m"
nginx.ingress.kubernetes.io/configuration-snippet: |
more_set_headers "Content-Security-Policy: default-src 'self'; script-src 'self' 'unsafe-inline'; script-src-elem 'self' 'unsafe-inline'; script-src-attr 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline'; style-src-elem 'self' 'unsafe-inline'; style-src-attr 'self' 'unsafe-inline'; img-src 'self' data:; font-src 'self'; connect-src 'self'; media-src; object-src; prefetch-src; child-src; frame-src 'self'; worker-src; frame-ancestors 'self' https://scripts.zdv.uni-mainz.de; form-action 'self' www.paypal.com; base-uri; manifest-src; plugin-types; report-uri; report-to";
more_set_headers "X-Frame-Options: sameorigin";
......
......@@ -63,6 +63,8 @@ ingress:
secretName: production-auto-deploy-tls
annotations:
cert-manager.io/cluster-issuer: letsencrypt-prod
nginx.ingress.kubernetes.io/client-body-buffer-size: "30m"
nginx.ingress.kubernetes.io/proxy-body-size: "30m"
nginx.ingress.kubernetes.io/configuration-snippet: |
more_set_headers "Content-Security-Policy: default-src 'self'; script-src 'self' 'unsafe-inline'; script-src-elem 'self' 'unsafe-inline'; script-src-attr 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline'; style-src-elem 'self' 'unsafe-inline'; style-src-attr 'self' 'unsafe-inline'; img-src 'self' data:; font-src 'self'; connect-src 'self'; media-src; object-src; prefetch-src; child-src; frame-src 'self'; worker-src; frame-ancestors 'self' https://scripts.zdv.uni-mainz.de; form-action 'self' www.paypal.com; base-uri; manifest-src; plugin-types; report-uri; report-to";
more_set_headers "X-Frame-Options: sameorigin";
......
......@@ -9,6 +9,8 @@ ingress:
annotations:
kubernetes.io/tls-acme: "false"
nginx.ingress.kubernetes.io/ssl-redirect: "false"
nginx.ingress.kubernetes.io/client-body-buffer-size: "30m"
nginx.ingress.kubernetes.io/proxy-body-size: "30m"
nginx.ingress.kubernetes.io/configuration-snippet: |
more_set_headers "Content-Security-Policy: default-src 'self'; script-src 'self' 'unsafe-inline'; script-src-elem 'self' 'unsafe-inline'; script-src-attr 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline'; style-src-elem 'self' 'unsafe-inline'; style-src-attr 'self' 'unsafe-inline'; img-src 'self' data:; font-src 'self'; connect-src 'self'; media-src; object-src; prefetch-src; child-src; frame-src 'self'; worker-src; frame-ancestors 'self' https://scripts.zdv.uni-mainz.de; form-action 'self' www.paypal.com; base-uri; manifest-src; plugin-types; report-uri; report-to";
more_set_headers "X-Frame-Options: sameorigin";
......
......@@ -55,6 +55,8 @@ RUN sed -i 's/;error_log = log\/php7\/error.log/error_log = \/dev\/stderr/g' /et
sed -i 's/;opcache.max_wasted_percentage=5/opcache.max_wasted_percentage=5/g' /etc/php7/php.ini && \
sed -i 's/;opcache.validate_timestamps=1/opcache.validate_timestamps=1/g' /etc/php7/php.ini && \
sed -i 's/;opcache.revalidate_freq=2/opcache.revalidate_freq=300/g' /etc/php7/php.ini && \
sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 30M/g' /etc/php7/php.ini && \
sed -i 's/post_max_size = 8M/post_max_size = 30M/g' /etc/php7/php.ini && \
echo "daemonize yes" >> /etc/redis.conf && \
ln -s /dev/null /var/log/nginx/access.log && \
ln -s /dev/stdout /var/log/nginx/error.log && \
......
......@@ -46,6 +46,8 @@ RUN sed -i 's/;error_log = log\/php7\/error.log/error_log = \/dev\/stderr/g' /et
sed -i 's/group = www-data/group = nginx/g' /etc/php7/php-fpm.d/www.conf && \
sed -i 's/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/g' /etc/php7/php.ini && \
sed -i 's/expose_php = On/expose_php = Off/g' /etc/php7/php.ini && \
sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 30M/g' /etc/php7/php.ini && \
sed -i 's/post_max_size = 8M/post_max_size = 30M/g' /etc/php7/php.ini && \
sed -i 's/;zend_extension=xdebug.so/zend_extension=xdebug.so/g' /etc/php7/conf.d/xdebug.ini && \
echo "xdebug.remote_enable = 1" >> /etc/php7/conf.d/xdebug.ini && \
echo "xdebug.remote_autostart = 1" >> /etc/php7/conf.d/xdebug.ini && \
......
......@@ -28,14 +28,16 @@ class MailController extends Controller
$returnMessage = '';
# Wir benötigen 3 Felder von dem Benutzer wenn diese nicht übermittelt wurden, oder nicht korrekt sind geben wir einen Error zurück
$input_data = $request->all();
$maxFileSize = 5 * 1024;
$validator = Validator::make(
[
'email' => $request->input('email'),
'pcsrf' => $request->input('pcsrf'),
],
$input_data,
[
'email' => 'required|email',
'pcsrf' => ['required', 'string', new \App\Rules\PCSRF],
'attachments' => ['max:5'],
'attachments.*' => ['file', 'max:' . $maxFileSize],
]
);
......@@ -59,12 +61,17 @@ class MailController extends Controller
# Wir versenden die Mail des Benutzers an uns:
$mailto = "support@metager.org";
if (LaravelLocalization::getCurrentLocale() === "de") {
$mailto = "support@suma-ev.de";
$mailto = "support+46521@metager.de";
}
$message = $request->input('message');
$subject = $request->input('subject');
$files = [];
if($request->has("attachments") && is_array($request->file("attachments"))){
$files = $request->file("attachments");
}
Mail::to($mailto)
->send(new Kontakt($name, $replyTo, $subject, $message));
->send(new Kontakt($name, $replyTo, $subject, $message, $files));
$returnMessage = trans('kontakt.success.1');
$messageType = "success";
......@@ -74,6 +81,8 @@ class MailController extends Controller
->with('title', 'Kontakt')
->with('js', ['lib.js'])
->with($messageType, $returnMessage);
}
public function donation(Request $request)
......@@ -172,7 +181,7 @@ class MailController extends Controller
} catch (\Swift_TransportException $e) {
Log::error($e->getMessage());
$messageType = "error";
$messageToUser = 'Beim Senden Ihrer Spendenbenachrichtigung ist ein Fehler auf unserer Seite aufgetreten. Bitte schicken Sie eine E-Mail an: office@suma-ev.de, damit wir uns darum kümmern können.';
$messageToUser = 'Beim Senden Ihrer Spendenbenachrichtigung ist ein Fehler auf unserer Seite aufgetreten. Bitte schicken Sie eine E-Mail an: dominik@suma-ev.de, damit wir uns darum kümmern können.';
}
}
......
......@@ -15,12 +15,13 @@ class Kontakt extends Mailable
*
* @return void
*/
public function __construct($name, $from, $subject, $message)
public function __construct($name, $from, $subject, $message, $attachments)
{
$this->name = $name;
$this->reply = $from;
$this->subject = $subject;
$this->message = $message;
$this->attachedFiles = $attachments;
}
/**
......@@ -30,9 +31,14 @@ class Kontakt extends Mailable
*/
public function build()
{
return $this->from($this->reply, $this->name)
$mail = $this->from($this->reply, $this->name)
->subject($this->subject)
->text('kontakt.mail')
->with('messageText', $this->message);
foreach($this->attachedFiles as $attachment){
$mail->attachData(file_get_contents($attachment->getRealPath()), $attachment->getClientOriginalName());
}
return $mail;
}
}
......@@ -4,6 +4,8 @@ server {
root /html/public;
index index.php index.html index.htm;
client_max_body_size 30M;
#charset koi8-r;
#access_log /var/log/nginx/host.access.log main;
......
......@@ -4,6 +4,8 @@ server {
root /html/public;
index index.php index.html index.htm;
client_max_body_size 30M;
#charset koi8-r;
#access_log /var/log/nginx/host.access.log main;
......
......@@ -26,6 +26,7 @@ http {
#tcp_nopush on;
keepalive_timeout 65;
client_max_body_size 30M;
gzip on;
......
<?xml version="1.0" encoding="UTF-8"?>
<phpunit backupGlobals="false"
backupStaticAttributes="false"
bootstrap="vendor/autoload.php"
colors="true"
convertErrorsToExceptions="true"
convertNoticesToExceptions="true"
convertWarningsToExceptions="true"
processIsolation="false"
stopOnFailure="false">
<testsuites>
<testsuite name="Browser Test Suite">
<directory suffix="Test.php">./tests/Browser</directory>
</testsuite>
</testsuites>
<filter>
<whitelist processUncoveredFilesFromWhitelist="true">
<directory suffix=".php">./app</directory>
</whitelist>
</filter>
</phpunit>
......@@ -36,7 +36,7 @@ Es steht dir jedoch frei, ein Ticket zu eröffnen.
## Sicherheitslücken
Falls du eine Sicherheitslücke findest oder dir etwas unsicher vorkommt,
zögere bitte nicht ein [Ticket zu schreiben](https://gitlab.metager.de/open-source/MetaGer/issues) oder eine Mail an [office@suma-ev.de](mailto:office@suma-ev.de) zu senden.
zögere bitte nicht eine [Nachricht zu schreiben](https://metager.de/kontakt).
## Lizenzen
......
......@@ -118,7 +118,7 @@ return [
'selist.title' => 'Ich möchte MetaGer zur Suchmaschinenliste meines Browsers hinzufügen.',
'selist.explanation.1' => 'Versuchen Sie bitte zuerst, das aktuelle Plugin zu installieren. Zum Installieren einfach auf den Link direkt unter dem Suchfeld klicken. Dort sollte Ihr Browser schon erkannt worden sein.',
'selist.explanation.2' => 'Manche Browser erwarten die Eingabe einer URL; diese lautet "https://metager.de/meta/meta.ger3?eingabe=%s" ohne Gänsefüßchen eintragen. Die URL können Sie selbst erzeugen, wenn Sie mit metager.de nach irgendetwas suchen und dann das, was oben im Adressfeld hinter "eingabe=" steht, mit %s ersetzen. Wenn Sie dann noch Probleme haben sollten, wenden Sie sich bitte an uns: <a href="mailto:office@suma-ev.de" target="_blank" rel="noopener">office@suma-ev.de</a>',
'selist.explanation.2' => 'Manche Browser erwarten die Eingabe einer URL; diese lautet "https://metager.de/meta/meta.ger3?eingabe=%s" ohne Gänsefüßchen eintragen. Die URL können Sie selbst erzeugen, wenn Sie mit metager.de nach irgendetwas suchen und dann das, was oben im Adressfeld hinter "eingabe=" steht, mit %s ersetzen. Wenn Sie dann noch Probleme haben sollten, wenden Sie sich bitte an uns: <a href="/kontakt" target="_blank" rel="noopener">Kontaktformular</a>',
'proposal.title' => 'Wie kann ich die Anzeige meiner vorherigen Suchen löschen?',
'proposal.explanation' => 'Die Suchvorschläge liefert Ihnen Ihr Webbrowser, sie müssen die Suchvorschläge also auch in ihrem Browser ausschalten. Meist geht das über die Chronik, immer ein wenig anders, aber abschalten können Sie das in jedem Browser.',
......
......@@ -13,8 +13,7 @@ D-30159 Hannover
Deutschland/Germany',
'info.3' => 'Kontakt:
Tel.: +4951134000070
EMail: <a href="mailto:office@suma-ev.de">office@suma-ev.de</a><a href="/kontakt/"> - Public-PGP-Key</a>
<a href="/kontakt/">Verschlüsselndes Kontaktformular</a>',
EMail: <a href="/kontakt">Verschlüsseltes Kontaktformular</a>',
'info.4' => 'Vorstand: Dominik Hebeler, Carsten Riel, Manuela Branz',
'info.6' => 'Jugendschutzbeauftragte: Manuela Branz <a href="mailto:jugendschutz@metager.de">jugendschutz@metager.de</a>',
'info.8' => '"SUMA-EV - Verein für freien Wissenszugang" ist ein gemeinnütziger
......
......@@ -3,17 +3,13 @@
return [
'headline.1' => 'Kontakt',
'form.1' => 'Sicheres Kontaktformular',
'form.2' => 'Über dieses Formular können Sie uns kontaktieren.
Alternativ können Sie uns natürlich auch per <a href="mailto:support@suma-ev.de">E-Mail</a> erreichen.',
'form.2' => 'Über dieses Formular können Sie uns kontaktieren.',
'form.name' => 'Name (Vorname Nachname)',
'form.5' => 'Ihre E-Mail-Adresse',
'form.6' => 'Ihre Nachricht',
'form.7' => 'Betreff',
'form.8' => 'Senden',
'mail.1' => 'Per E-Mail',
'mail.2' => 'Sie können uns auch direkt eine E-Mail an die folgende Adresse schicken: <a href="mailto::mail">:mail</a>',
'mail.3' => 'Falls Sie diese verschlüsseln wollen, finden Sie nachfolgend unseren öffentlichen OpenPGP-Schlüssel:',
'form.9' => 'Bis zu 5 Anhänge hinzufügen (Dateigröße < 5 MB)',
'letter.1' => 'Per Brief-Post',
'letter.2' => 'Wir ziehen es vor, auf digitalem Wege kontaktiert zu werden.
Wenn Sie jedoch eine postalische Kontaktaufnahme als unbedingt nötig erachten,
......
......@@ -7,7 +7,7 @@ return [
'progress' => ':uebersetzteTexte/:textCount Texten übersetzt (:percentage%)',
'hinweis.1' => 'Sobald du mit deinen Texten zufrieden bist, kannst du uns diese mit einem Klick auf folgenden Knopf automatisch zusenden. Wenn es mehr fehlende Texte in der angegebenen Sprache gibt, wird dein Browser dich danach direkt zu diesen leiten.',
'hinweis.2' => '<b>Hinweis</b>: Die übermittelten Texte werden von diesem Tool erst erkannt, sobald diese von uns gesichtet und eingefügt wurden. Wenn du deine Arbeit sichern möchtest um diese zu einem späteren Zeitpunkt fortzusetzen (auch wenn wir deine bisherige Arbeit noch nicht übernehmen konnten), so reicht es vollkommen, den aktuellen Link aus deiner Browserleiste zu kopieren und zu einem späteren Zeitpunkt wieder aufzurufen.',
'hinweis.3' => '<b>Achtung</b>: Mit der Einsendung stimmst du einer <a href="https://gitlab.metager.de/open-source/MetaGer" target="_blank" rel="noopener">Veröffentlichung</a> deiner Texte unter AGPL-v3-Lizenz durch uns zu. Falls du namentlich genannt werden möchtest, teile uns dies bitte in einer email an <a href="mailto:office@suma-ev.de">office@suma-ev.de</a> mit.',
'hinweis.3' => '<b>Achtung</b>: Mit der Einsendung stimmst du einer <a href="https://gitlab.metager.de/open-source/MetaGer" target="_blank" rel="noopener">Veröffentlichung</a> deiner Texte unter AGPL-v3-Lizenz durch uns zu. Falls du namentlich genannt werden möchtest, teile uns dies bitte in einer email über das <a href="/kontakt">Kontaktformular</a> mit.',
'email' => '<b>E-Mail-Adresse für Rückfragen</b> (optional):',
'synoptic' => ['hinweis' => 'Datei wurde zuletzt bearbeitet.'],
];
......@@ -6,7 +6,7 @@ return [
'settings.noneSelected' => 'Achtung: Sie haben in ihren Einstellungen keine Suchmaschine ausgewählt.',
'engines.noParser' => 'Beim Abfragen von :engine ist ein Fehler aufgetreten. Bitte benachrichtigen Sie uns unter: office@suma-ev.de',
'engines.noParser' => 'Beim Abfragen von :engine ist ein Fehler aufgetreten. Bitte benachrichtigen Sie uns über unser <a href="/kontakt" target="_blank">Kontaktformular</a>',
'engines.noSpecialSearch' => 'Für eine Ihrer Filteroptionen gab es keine Suchmaschine im aktuellen Fokus (:fokus), welche diese unterstützen würde. Sie haben folgende(n) Filter aktiv: ":filter".',
'formdata.cantLoad' => 'Suma-File konnte nicht gefunden werden',
......
......@@ -12,7 +12,7 @@ return [
'role.8' => 'Founder',
'role.9' => 'Praktikant',
'contact.1' => 'Fragen/Probleme zu MetaGer etc. bitte immer an <a href="mailto:office@suma-ev.de">office@suma-ev.de</a> mailen, oder das <a href="/kontakt/">Kontaktformular mit Verschlüsselung</a> benutzten.',
'contact.1' => 'Fragen/Probleme zu MetaGer etc. bitte das <a href="/kontakt/">Kontaktformular mit Verschlüsselung</a> benutzten.',
'contact.2' => 'Sollten Sie jemals eine E-Mail mit seltsamem Inhalt bekommen, auf der unsere Namen und/oder unsere E-Mail Adressen als Absender genannt sind, lesen Sie bitte hier weiter: <a href="https://metager.de/wsb/fakemail/">https://metager.de/wsb/fakemail/</a>',
'contact.3' => 'Nur in begründeten Ausnahmefällen, wenn Sie bestimmte Personen direkt erreichen wollen, sollten Sie an diese mailen. Denn Team-Mitglieder können Urlaub haben, krank sein usw.',
];
......@@ -121,7 +121,7 @@ return [
'selist.title' => 'I want to add metager.de to the search engines list of my browser.',
'selist.explanation.1' => 'Please try first to install the newest available plugin. Just use the link below the searchfield, it has an automatic browserdetection.',
'selist.explanation.2' => 'Some browser need an URL. Please use "https://metager.de/meta/meta.ger3?eingabe=%s" without qoutation marks. If there are still problems, please <a href="mailto:office@suma-ev.de" target="_blank" rel="noopener">write an email.</a>',
'selist.explanation.2' => 'Some browser need an URL. Please use "https://metager.de/meta/meta.ger3?eingabe=%s" without qoutation marks. If there are still problems, please <a href="/en/kontakt" target="_blank" rel="noopener">write an email.</a>',
'proposal.title' => 'How can I delete the search suggestions?',
'proposal.explanation' => 'This is provided by your webbrowser. Try to customize the history settings.',
......
......@@ -12,8 +12,7 @@ D-30159 Hannover
Deutschland/Germany',
'info.3' => 'Contact:
Tel.: +4951134000070
EMail: <a href="mailto:office@suma-ev.de">office@suma-ev.de</a><a href="/kontakt/"> - Public-PGP-Key</a>
<a href="/kontakt/">encrypted contact form</a>',
EMail: <a href="/en/kontakt">Encrypted contact form</a>',
'info.4' => 'Board: Dominik Hebeler, Carsten Riel, Manuela Branz',
'info.6' => 'Youth Protection Commissioner: Manuela Branz <a href="mailto:jugendschutz@metager.de">jugendschutz@metager.de</a>',
'info.8' => '"SUMA-EV - Verein für freien Wissenszugang" is a charitable association, registered in the register of associations at the Amtsgericht Hannover
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment