diff options
Diffstat (limited to 'login.go')
-rw-r--r-- | login.go | 26 |
1 files changed, 13 insertions, 13 deletions
@@ -16,27 +16,27 @@ type loginFormdata struct { Mail, Password string } -func login(user model.User, sess *sessions.Session, req *http.Request) interface{} { +func login(user model.User, sess *sessions.Session, req *http.Request) (interface{}, model.User) { outdata := &loginTpldata{} if user != nil { outdata.Success = "You are already logged in" - return outdata + return outdata, user } if req.Method != "POST" { - return outdata + return outdata, user } if err := req.ParseForm(); err != nil { outdata.Error = "Data of form could not be understand. If this happens again, please contact support!" - return outdata + return outdata, user } indata := new(loginFormdata) if err := formdec.Decode(indata, req.Form); (err != nil) || (indata.Mail == "") || (indata.Password == "") { outdata.Error = "Input data wrong or missing. Please fill in all values." - return outdata + return outdata, user } user, err := dbcon.UserByMail(indata.Mail) @@ -44,32 +44,32 @@ func login(user model.User, sess *sessions.Session, req *http.Request) interface case nil: case model.NotFound: outdata.Error = "E-Mail or password was wrong." - return outdata + return outdata, user default: log.Printf("Error while loding user data (login): %s", err) outdata.Error = "User data could not be loaded. Please contact support, if this happens again." - return outdata + return outdata, user } if bcrypt.CompareHashAndPassword(user.PWHash(), []byte(indata.Password)) != nil { outdata.Error = "E-Mail or password was wrong." - return outdata + return outdata, user } sess.Values["uid"] = user.ID().String() outdata.Success = "Login successful" - return outdata + return outdata, user } -func logincheck(user model.User, sess *sessions.Session, req *http.Request) interface{} { +func logincheck(user model.User, sess *sessions.Session, req *http.Request) (interface{}, model.User) { outdata := &msgTpldata{Msg: "<nil>"} if user != nil { outdata.Msg = user.Email() } - return outdata + return outdata, user } -func logout(user model.User, sess *sessions.Session, req *http.Request) interface{} { +func logout(user model.User, sess *sessions.Session, req *http.Request) (interface{}, model.User) { delete(sess.Values, "uid") - return &msgTpldata{Class: "success", Title: "Logout", Msg: "Your are now logged out."} + return &msgTpldata{Class: "success", Title: "Logout", Msg: "Your are now logged out."}, nil } |