diff options
-rw-r--r-- | routers/user/user.go | 34 | ||||
-rw-r--r-- | templates/user/signin.tmpl | 9 |
2 files changed, 25 insertions, 18 deletions
diff --git a/routers/user/user.go b/routers/user/user.go index cf131408..b7f9d148 100644 --- a/routers/user/user.go +++ b/routers/user/user.go @@ -24,22 +24,26 @@ func Profile(r render.Render) { } func SignIn(req *http.Request, r render.Render) { - if req.Method == "GET" { - r.HTML(200, "user/signin", map[string]interface{}{ - "Title": "Log In", - }) - return - } - - // todo sign in - _, err := models.LoginUserPlain(req.FormValue("account"), req.FormValue("passwd")) - if err != nil { - r.HTML(200, "base/error", map[string]interface{}{ - "Error": fmt.Sprintf("%v", err), - }) - return + var ( + errString string + account string + ) + if req.Method == "POST" { + account = req.FormValue("account") + _, err := models.LoginUserPlain(account, req.FormValue("passwd")) + if err == nil { + // login success + r.Redirect("/") + return + } + // login fail + errString = fmt.Sprintf("%v", err) } - r.Redirect("/") + r.HTML(200, "user/signin", map[string]interface{}{ + "Title": "Log In", + "Error": errString, + "Account": account, + }) } func SignUp(req *http.Request, r render.Render) { diff --git a/templates/user/signin.tmpl b/templates/user/signin.tmpl index 856e46d9..6527ae53 100644 --- a/templates/user/signin.tmpl +++ b/templates/user/signin.tmpl @@ -2,17 +2,20 @@ {{template "base/navbar" .}} <div class="container" id="gogs-body"> <form action="/user/signin" method="post" class="form-horizontal gogs-card" id="gogs-login-card"> - <h3>Log in</h3> + <h3>Log in</h3>{{if .Error}} + <div class="form-group"> + <div class="col-md-6 col-md-offset-3 alert alert-danger text-center"><strong>{{.Error}}</strong></div> + </div>{{end}} <div class="form-group"> <label class="col-md-4 control-label">Username or Email: </label> <div class="col-md-6"> - <input name="account" class="form-control" placeholder="Type your username or e-mail address"> + <input name="account" class="form-control" placeholder="Type your username or e-mail address" value="{{.Account}}" required="required"> </div> </div> <div class="form-group"> <label class="col-md-4 control-label">Password: </label> <div class="col-md-6"> - <input name="passwd" type="password" class="form-control" placeholder="Type your password"> + <input name="passwd" type="password" class="form-control" placeholder="Type your password" required="required"> </div> </div> <div class="form-group"> |