From feb97c32649dfaa7c98283423125283a53d5dd09 Mon Sep 17 00:00:00 2001 From: Horus3 Date: Sun, 17 May 2015 00:56:57 +0200 Subject: Improved UX, security and presentation. --- handler.go | 24 +++++++++++++++++++++--- server.go | 10 +++++++--- static/css/style.css | 3 +++ views/about.html | 1 + views/howto.html | 30 +++++++++++++++++++----------- views/howto_de.html | 31 ++++++++++++++++++------------- views/index.html | 7 +++---- views/index_de.html | 18 +++++++++--------- views/server.html | 7 ++++--- views/server_de.html | 4 ++-- 10 files changed, 87 insertions(+), 48 deletions(-) diff --git a/handler.go b/handler.go index 9035f87..021a852 100644 --- a/handler.go +++ b/handler.go @@ -10,6 +10,7 @@ func IndexHandler(w http.ResponseWriter, r *http.Request) { if err != nil { log.Println("Info: ", err) } + session.Values["page"] = "/" flash := Flash{} flash.Error = session.Flashes("error") @@ -30,6 +31,7 @@ func RegisterHandler(w http.ResponseWriter, r *http.Request) { if err != nil { log.Println("Info: ", err) } + session.Values["page"] = "/register" flash := Flash{} flash.Error = session.Flashes("error") @@ -99,6 +101,7 @@ func AboutHandler(w http.ResponseWriter, r *http.Request) { if err != nil { log.Println("Info: ", err) } + session.Values["page"] = "/about" flash := Flash{} flash.Error = session.Flashes("error") @@ -119,6 +122,7 @@ func ServerHandler(w http.ResponseWriter, r *http.Request) { if err != nil { log.Println("Info: ", err) } + session.Values["page"] = "/server" flash := Flash{} flash.Error = session.Flashes("error") @@ -139,6 +143,7 @@ func HowtoHandler(w http.ResponseWriter, r *http.Request) { if err != nil { log.Println("Info: ", err) } + session.Values["page"] = "/howto" flash := Flash{} flash.Error = session.Flashes("error") @@ -159,6 +164,7 @@ func UserHandler(w http.ResponseWriter, r *http.Request) { if err != nil { log.Println("Info: ", err) } + session.Values["page"] = "/user" flash := Flash{} flash.Error = session.Flashes("error") @@ -179,6 +185,7 @@ func PasswordHandler(w http.ResponseWriter, r *http.Request) { if err != nil { log.Println("Info: ", err) } + session.Values["page"] = "/password" flash := Flash{} flash.Error = session.Flashes("error") @@ -239,7 +246,11 @@ func ChangePasswordHandler(w http.ResponseWriter, r *http.Request) { } func ChangeLocaleHandler(w http.ResponseWriter, r *http.Request) { - err := r.ParseForm() + session, err := store.Get(r, "_SID") + if err != nil { + log.Println("Info: ", err) + } + err = r.ParseForm() if err != nil { log.Panic(err) http.Error(w, err.Error(), http.StatusInternalServerError) @@ -248,11 +259,18 @@ func ChangeLocaleHandler(w http.ResponseWriter, r *http.Request) { locale := r.URL.Query().Get("to") + var page string + if session.Values["page"] == "" { + page = "/" + } else { + page = session.Values["page"].(string) + } + if len(locale) == 0 { - http.Redirect(w, r, "/", 302) + http.Redirect(w, r, page, 302) return } cookie := http.Cookie{Name: "lang", Value: locale} http.SetCookie(w, &cookie) - http.Redirect(w, r, "/", 302) + http.Redirect(w, r, page, 302) } diff --git a/server.go b/server.go index 387b5b6..975b549 100644 --- a/server.go +++ b/server.go @@ -25,9 +25,13 @@ func CreateNewEntry(email, password string) error { // Checks for correct DNS if !vD.ValidateDomainMX(server) { - if !vD.ValidateDomain(server) { - return errors.New("Neither the MX record nor the domain itself point to this server. Please fix your DNS.") - } + return errors.New("Wrong DNS setup. The MX record does not point to this server. Please fix your DNS.") + + // We require the correct MX entry, not just a A record. + // + //if !vD.ValidateDomain(server) { + // return errors.New("Neither the MX record nor the domain itself point to this server. Please fix your DNS.") + //} } if !vD.DomainExists() { diff --git a/static/css/style.css b/static/css/style.css index e28ece7..4504e38 100644 --- a/static/css/style.css +++ b/static/css/style.css @@ -67,3 +67,6 @@ body { .lp { margin-top: 25px; } +.italic { + font-style: italic; +} diff --git a/views/about.html b/views/about.html index 8992d8c..0e75f60 100644 --- a/views/about.html +++ b/views/about.html @@ -53,6 +53,7 @@ Debian - Operating System
+

Warranty

THERE IS ABSOLUT NO WARRANTY IN ANY WAY, BE IT UPTIME, BACKUP OR ABUSE. THE USER IS RESPONSIBLE FOR HIS OWN DOING. diff --git a/views/howto.html b/views/howto.html index ae8d9fe..03bb4f7 100644 --- a/views/howto.html +++ b/views/howto.html @@ -8,24 +8,18 @@

How to


-

Create new adress

-

To create a new mail adress follow and fill out this link. +

Create new address

+

To create a new mail address follow and fill out this link.
- You can use email.iamfabulous.de or user.iamfabulous.de as a base domain, so e.g. 'post@email.iamfabulous.de' or 'tidyupmyroom@user.iamfabulous.de' are valid entries. + You can use email.iamfabulous.de or user.iamfabulous.de as a base domain, so e.g. 'post@email.iamfabulous.de' or 'tidyupmyroom@user.iamfabulous.de' are valid entries.
Try it out, if the mail is already taken it will prompt you with more details.


-

Use other domains

-

It is possible to use other domains as well. If you own one, we can do the mail hosting for you. -
- The requirements are a valid MX entry in your DNS. MX means 'mail exchange' and is a special resource record which points the responsible mail server. The correct entry is mx.iamfabulous.de. -

-

Login

-

The easiest way is to use our webmail interface. You can find it here . +

The easiest way to login is using our webmail interface with your browser. You can find it here .
- Log in with your full mail adress and your password. + Your login name is your full mail address.

If you want to use your own client, see here for connection details. @@ -37,6 +31,20 @@
Follow this link here .

+
+

Use other domains

+

It is possible to use other domains as well. If you own one, we can do the mail hosting for you. +

+

+ The requirements are a valid MX entry in your DNS. MX means 'mail exchange' and is a special resource record which points the responsible mail server. The correct entry is mx.iamfabulous.de. +
+ For hassle-free mail delivery a valid SPF entry is mandatory. A valid TXT record may look like +
+ v=spf1 mxipv4:62.210.138.105 -all. +

+

+ We also recommend to sign your mails with DKIM. To set up DKIM send me a notice, because it's not possible to automate this procedure. +

diff --git a/views/howto_de.html b/views/howto_de.html index 5b0f9a5..b573a09 100644 --- a/views/howto_de.html +++ b/views/howto_de.html @@ -9,34 +9,39 @@

Neue Adresse

-

Um eine neue E-Mail Adresse auszufüllen folgen Sie diesem link. +

Um eine neue E-Mail Adresse zu erstellen folgen Sie diesem Link.
- Sie können email.iamfabulous.de oder user.iamfabulous.de als Basis nehmen, zum Beispiel 'post@email.iamfabulous.de' oder 'tidyupmyroom@user.iamfabulous.de' sind gültige Einträge. + Es steht u.a. email.iamfabulous.de oder user.iamfabulous.de als Domain zur Verfügung, zum Beispiel 'post@email.iamfabulous.de' oder 'tidyupmyroom@user.iamfabulous.de' sind gültige Adressen.
- Probieren Sie es aus. Wenn die Adresse schon vergeben ist, wird Ihnen eine Fehlermeldung mit mehr Informationen gezeigt. -

-
-

Eigene Domain

-

Es ist möglich Libremail auch mit anderen Domains zu verwenden. Wenn Sie eine besitzen, dann können wir das E-Mail hosting für sie übernehmen. -
- Verlangt wird ein gültiger MX Eintrag in Ihrem DNS. MX bedeutet 'mail exchange' und ist ein spezieller Eintrag welcher auf den verantwortlichen Mail Server zeigt. Der korrekte Eintrag lautet mx.iamfabulous.de. + Probieren Sie es aus. Wenn die Adresse schon vergeben ist, wird Ihnen eine Meldung mit mehr Informationen angezeigt.


Login

-

Am einfachsten ist es, wenn Sie unser Webmail benutzen. Sie finden es hier . +

Am einfachsten ist es, wenn Sie sich über Ihren Browser einloggen. Sie finden unser Webmail Angebot hier .
- Benutzen Sie ihre volle E-Mail Adresse und ihr Passwort als Login. + Benutzen Sie Ihre volle E-Mail Adresse als Loginname.

- Wenn Sie Ihren eigenen Klienten (Smartphone oder Thunderbird etc.) benutzen wollen, können Sie hier für Details zur Verbindung sehen. + Wenn Sie Ihren eigenen Klienten (Smartphone oder Thunderbird etc.) benutzen wollen, können Sie hier Details zur Verbindungsherstellung einsehen.


Passwort ändern

- Sie können einfach und bequem Ihr Passwort durch diese Webseite ändern. Sie benötigen dafür noch ihr altes Passwort. + Sie können einfach und bequem Ihr Passwort über diese Webseite ändern. Sie benötigen dafür Ihr altes Passwort.
Folgen Sie dafür einfach diesem Link.

+
+

Eigene Domain

+

Es ist möglich Libremail auch mit anderen Domains zu verwenden. Wenn Sie eine eigene Domain besitzen, dann können wir uns um die E-Mail Geschichte kümmern. +

+

+ Verlangt wird ein gültiger MX Eintrag in Ihrem DNS. MX bedeutet 'Mail Exchange' und ist ein spezieller Eintrag welcher auf den verantwortlichen Mail Server zeigt. Der korrekte Eintrag lautet mx.iamfabulous.de. +
+ Für eine korrekte Mail Zustellung ist außerdem mindestens ein gültiger SPF Record im DNS notwendig. Ein gültiger Eintrag könnte als TXT Record so aussehen.
v=spf1 mxipv4:62.210.138.105 -all +

+

Wir empfehlen außerdem die Signierung der E-Mails mit DKIM. Sollten Sie einen DKIM Eintrag wünschen, setzen Sie sich mit mir in Kontakt, da dieser Vorgang nicht automatisiert werden kann. +

diff --git a/views/index.html b/views/index.html index d443b7b..423f176 100644 --- a/views/index.html +++ b/views/index.html @@ -23,13 +23,12 @@

Secure

We do our best to keep up-to-date with the latest technologies and not only suggest, but rather enforce encryption on every step.

-

About us »

+

About us »

Own Domain

-

You own a domain? We will gladly do the mail hosting for you. Set up your DNS and get everything out of the box.
- Please read the docs for more info.

-

Read More »

+

You want to send and recieve e-mails with your own domain? We will gladly do the mail hosting for you. Follow our instructions and we will do the rest. +

Read More »

diff --git a/views/index_de.html b/views/index_de.html index 327af8f..839c5c6 100644 --- a/views/index_de.html +++ b/views/index_de.html @@ -16,19 +16,19 @@

Schnell & Einfach

Nur noch 10 Sekunden bis zur neuen Mail Adresse. - Wähle Sie eine freie Adresse und registrieren Sie sich.
- Trauen Sie sich! Es ist frei und wir beißen nicht.

+ Wählen Sie sich eine freie Adresse aus und lassen Sie sie registrieren. + Trauen Sie sich! Es ist frei wie in Freibier und wir beißen nicht.

Registrieren »

Sicher

-

Wir geben unser bestes um immer aktuell zu sein und die neuesten Technologien zu benutzen. Deswegen empfehlen wir nicht nur Verschlüsselung, sondern erzwingen sie wo immer es geht. -

Über uns »

+

Wir benutzen die aktuellesten Technologien und Methoden. Deswegen empfehlen wir nicht nur eine für den Nutzer transparente Verschlüsselung der Daten, sondern erzwingen sie wann und wo immer es geht. +

Über uns »

Eigene Domain

-

Sie besitzen eine Domain? Wir kümmerns uns gerne um Ihre E-Mail setup. Setzen Sie ihr DNS und bekommen Sie alles auf einmal.

-

Lese wie es geht »

+

Sie verfügen über eine eigene Domain? Und Sie möchten E-Mails darüber versenden und empfangen können? Folgen Sie unserer Anleitung und wir kümmern uns um den Rest.

+

Lies wie es geht »

@@ -37,9 +37,9 @@

Warum

-

Libremail ist das Ergebnis meiner Bemühungen, als ich einen stressfreien E-Mail Anbieter ohne großes Brimborium drumherum gesucht habe. Inzwischen vertrauen einige Leute darauf, dass ihre E-Mails zugestellt werden. Wir hosten sogar Mailing Listen auf diesem Server. - Wenn Sie interessiert sind, dann können Sie meinen Blog folgen.

-

Folge Mir »

+

Libremail ist das Ergebnis meiner Bemühungen, als ich einen stressfreien E-Mail Anbieter ohne großes Brimborium drumherum gesucht habe. Inzwischen vertrauen einige Leute darauf, dass ihre E-Mails zugestellt werden. Wir betreiben sogar Mailing Listen auf diesem Server. + Wenn Sie interessiert sind, folgen Sie meinem Blog. Ich arbeite noch an anderen interessanten Projekten.

+

Lies mehr »

diff --git a/views/server.html b/views/server.html index 5fb17de..b14fbf6 100644 --- a/views/server.html +++ b/views/server.html @@ -16,10 +16,11 @@
Use your mail adress and the passwort as credentials to log in.
-
The TLS certificate is signed to 'webmail.iamfabulous.de' -
- Please note: Unfortunalety roundcube does not support GPG encryption yet.

+

+

+ Please note: Unfortunalety roundcube does not support GPG encryption yet. +

  • SMTP

    diff --git a/views/server_de.html b/views/server_de.html index 997a78c..8cdebf5 100644 --- a/views/server_de.html +++ b/views/server_de.html @@ -17,8 +17,8 @@ Loggen Sie sich mit Ihrer kompletten E-Mail Adresse und ihrem Passwort ein.
    Das TLS Zertifikat ist auf 'webmail.iamfabulous.de' signiert. -
    -
    +

    +

    Bitte beachten Sie: Leider unterstützt Roundcube noch keine GPG Verschlüsselung.

  • -- cgit v1.2.3