diff options
author | Kevin Chabowski <kevin@kch42.de> | 2013-09-05 21:50:44 +0200 |
---|---|---|
committer | Kevin Chabowski <kevin@kch42.de> | 2013-09-05 21:50:44 +0200 |
commit | 6f4d4569a5227e1962f5f7a81e1a63b6046cfb6c (patch) | |
tree | 0e0a49b15f67de1816c756de04eb8f0f4a9a2288 /login.go | |
parent | 0829fda06733674abdc340ec17c0fbfb4fd778ae (diff) | |
download | mailremind-6f4d4569a5227e1962f5f7a81e1a63b6046cfb6c.tar.gz mailremind-6f4d4569a5227e1962f5f7a81e1a63b6046cfb6c.tar.bz2 mailremind-6f4d4569a5227e1962f5f7a81e1a63b6046cfb6c.zip |
Menu options change drectly on Login/Logout
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 } |