aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUnknown <joe2010xtmf@163.com>2014-04-27 01:54:08 -0600
committerUnknown <joe2010xtmf@163.com>2014-04-27 01:54:08 -0600
commit62240b6bc12abfe257224bb554a75a5712803059 (patch)
treec5ab69fca3503972a4cad5f0ed9181d94ab67908
parentce05a8d7b6939b4f67a8e779bcc784d1b8ef8fab (diff)
Add login by email
-rw-r--r--models/user.go18
-rw-r--r--modules/auth/auth.go2
-rw-r--r--routers/user/user.go21
-rw-r--r--templates/user/signin.tmpl2
4 files changed, 14 insertions, 29 deletions
diff --git a/models/user.go b/models/user.go
index df1eb985..661eff2f 100644
--- a/models/user.go
+++ b/models/user.go
@@ -410,21 +410,27 @@ func GetUserByEmail(email string) (*User, error) {
}
// LoginUserPlain validates user by raw user name and password.
-func LoginUserPlain(name, passwd string) (*User, error) {
- user := User{LowerName: strings.ToLower(name)}
- has, err := orm.Get(&user)
+func LoginUserPlain(uname, passwd string) (*User, error) {
+ var u *User
+ if strings.Contains(uname, "@") {
+ u = &User{Email: uname}
+ } else {
+ u = &User{LowerName: strings.ToLower(uname)}
+ }
+
+ has, err := orm.Get(u)
if err != nil {
return nil, err
} else if !has {
return nil, ErrUserNotExist
}
- newUser := &User{Passwd: passwd, Salt: user.Salt}
+ newUser := &User{Passwd: passwd, Salt: u.Salt}
newUser.EncodePasswd()
- if user.Passwd != newUser.Passwd {
+ if u.Passwd != newUser.Passwd {
return nil, ErrUserNotExist
}
- return &user, nil
+ return u, nil
}
// Follow is connection request for receiving user notifycation.
diff --git a/modules/auth/auth.go b/modules/auth/auth.go
index 350ef4fc..e493faef 100644
--- a/modules/auth/auth.go
+++ b/modules/auth/auth.go
@@ -57,7 +57,7 @@ func (f *RegisterForm) Validate(errors *base.BindingErrors, req *http.Request, c
}
type LogInForm struct {
- UserName string `form:"username" binding:"Required;AlphaDash;MaxSize(30)"`
+ UserName string `form:"username" binding:"Required;MaxSize(35)"`
Password string `form:"passwd" binding:"Required;MinSize(6);MaxSize(30)"`
Remember string `form:"remember"`
}
diff --git a/routers/user/user.go b/routers/user/user.go
index fe53896e..9cce4e71 100644
--- a/routers/user/user.go
+++ b/routers/user/user.go
@@ -144,27 +144,6 @@ func SignInPost(ctx *middleware.Context, form auth.LogInForm) {
ctx.Redirect("/")
}
-func oauthSignInPost(ctx *middleware.Context, sid int64) {
- ctx.Data["Title"] = "OAuth Sign Up"
- ctx.Data["PageIsSignUp"] = true
-
- if _, err := models.GetOauth2ById(sid); err != nil {
- if err == models.ErrOauth2RecordNotExist {
- ctx.Handle(404, "user.oauthSignUp(GetOauth2ById)", err)
- } else {
- ctx.Handle(500, "user.oauthSignUp(GetOauth2ById)", err)
- }
- return
- }
-
- ctx.Data["IsSocialLogin"] = true
- ctx.Data["username"] = ctx.Session.Get("socialName")
- ctx.Data["email"] = ctx.Session.Get("socialEmail")
- log.Trace("user.oauthSignUp(social ID): %v", ctx.Session.Get("socialId"))
-
- ctx.HTML(200, "user/signup")
-}
-
func SignOut(ctx *middleware.Context) {
ctx.Session.Delete("userId")
ctx.Session.Delete("userName")
diff --git a/templates/user/signin.tmpl b/templates/user/signin.tmpl
index 955c82f4..09ce249f 100644
--- a/templates/user/signin.tmpl
+++ b/templates/user/signin.tmpl
@@ -10,7 +10,7 @@
{{end}}
{{template "base/alert" .}}
<div class="form-group {{if .Err_UserName}}has-error has-feedback{{end}}">
- <label class="col-md-4 control-label">Username: </label>
+ <label class="col-md-4 control-label">Username or e-mail: </label>
<div class="col-md-6">
<input name="username" class="form-control" placeholder="Type your username" value="{{.username}}" required="required">
</div>