diff options
| author | jan <jan@ruken.pw> | 2016-11-02 14:15:53 (UTC) |
|---|---|---|
| committer | jan <jan@ruken.pw> | 2016-11-02 14:15:53 (UTC) |
| commit | fb42c216818e05af7fce1f41908bdb969ba43903 (patch) | |
| tree | a21b6929c853da70f486ceada9911babaa6d5c87 | |
| parent | 0bceb502ba7b7fd9af404d6e59f6b43c10ea32d7 (diff) | |
fette checks bei registration
| -rw-r--r-- | charakterin.go | 31 |
1 files changed, 29 insertions, 2 deletions
diff --git a/charakterin.go b/charakterin.go index 64af53a..b1500f0 100644 --- a/charakterin.go +++ b/charakterin.go | |||
| @@ -8,6 +8,7 @@ import ( | |||
| 8 | "net/http" | 8 | "net/http" |
| 9 | "net/url" | 9 | "net/url" |
| 10 | "time" | 10 | "time" |
| 11 | "regexp" | ||
| 11 | 12 | ||
| 12 | _ "github.com/lib/pq" | 13 | _ "github.com/lib/pq" |
| 13 | ) | 14 | ) |
| @@ -36,6 +37,8 @@ type Charakterin struct { | |||
| 36 | Database *sql.DB | 37 | Database *sql.DB |
| 37 | } | 38 | } |
| 38 | 39 | ||
| 40 | var reEmail, _ = regexp.Compile(`(\w[-._\w]*\w@\w[-._\w]*\w\.\w{2,})`) | ||
| 41 | |||
| 39 | // New erstellt eine neue Instanz von Charakterin. | 42 | // New erstellt eine neue Instanz von Charakterin. |
| 40 | func New(db *sql.DB) *Charakterin { | 43 | func New(db *sql.DB) *Charakterin { |
| 41 | if err := db.Ping(); err != nil { | 44 | if err := db.Ping(); err != nil { |
| @@ -301,6 +304,30 @@ func (c *Charakterin) Register(w http.ResponseWriter, r *http.Request) { | |||
| 301 | username := values.Get("username") | 304 | username := values.Get("username") |
| 302 | password := values.Get("password") | 305 | password := values.Get("password") |
| 303 | email := values.Get("email") | 306 | email := values.Get("email") |
| 307 | |||
| 308 | if len(username) < 3 { | ||
| 309 | data := make(map[string]interface{}) | ||
| 310 | data["error"] = "Username zu kurz, du Hurensohn" | ||
| 311 | data["previous_email"] = email | ||
| 312 | c.DisplayRegistrationWithData(w, r, data) | ||
| 313 | return | ||
| 314 | } | ||
| 315 | if len(password) < 3 { | ||
| 316 | data := make(map[string]interface{}) | ||
| 317 | data["error"] = "Passwort zu kurz, du Hurensohn" | ||
| 318 | data["previous_user"] = username | ||
| 319 | c.DisplayRegistrationWithData(w, r, data) | ||
| 320 | return | ||
| 321 | } | ||
| 322 | if len(email) < 3 || !reEmail.MatchString(email) { | ||
| 323 | data := make(map[string]interface{}) | ||
| 324 | data["error"] = "Fick deine Email" | ||
| 325 | data["previous_email"] = email | ||
| 326 | data["previous_user"] = username | ||
| 327 | c.DisplayRegistrationWithData(w, r, data) | ||
| 328 | return | ||
| 329 | } | ||
| 330 | |||
| 304 | var result string | 331 | var result string |
| 305 | err = c.Database.QueryRow("SELECT * FROM login.register_user($1, $2, $3)", username, password, email).Scan(&result) | 332 | err = c.Database.QueryRow("SELECT * FROM login.register_user($1, $2, $3)", username, password, email).Scan(&result) |
| 306 | if err != nil { | 333 | if err != nil { |
| @@ -310,13 +337,13 @@ func (c *Charakterin) Register(w http.ResponseWriter, r *http.Request) { | |||
| 310 | data := make(map[string]interface{}) | 337 | data := make(map[string]interface{}) |
| 311 | data["error"] = "Der Benutzername wird bereits verwendet." | 338 | data["error"] = "Der Benutzername wird bereits verwendet." |
| 312 | data["previous_email"] = email | 339 | data["previous_email"] = email |
| 313 | c.DisplayLoginWithData(w, r, data) | 340 | c.DisplayRegistrationWithData(w, r, data) |
| 314 | return | 341 | return |
| 315 | } else if errStr == EmailAlreadyRegistered { | 342 | } else if errStr == EmailAlreadyRegistered { |
| 316 | data := make(map[string]interface{}) | 343 | data := make(map[string]interface{}) |
| 317 | data["error"] = "Diese E-Mail wird bereits verwendet." | 344 | data["error"] = "Diese E-Mail wird bereits verwendet." |
| 318 | data["previous_user"] = username | 345 | data["previous_user"] = username |
| 319 | c.DisplayLoginWithData(w, r, data) | 346 | c.DisplayRegistrationWithData(w, r, data) |
| 320 | return | 347 | return |
| 321 | } | 348 | } |
| 322 | 349 | ||
