Finish verify email

This commit is contained in:
Unknown 2014-03-19 12:50:44 -04:00
parent c6e12d2568
commit 35d473f04a
13 changed files with 182 additions and 62 deletions

View file

@ -5,6 +5,7 @@
package models
import (
"encoding/hex"
"errors"
"fmt"
"os"
@ -17,6 +18,7 @@ import (
"github.com/gogits/git"
"github.com/gogits/gogs/modules/base"
"github.com/gogits/gogs/modules/log"
)
// User types.
@ -139,9 +141,43 @@ func RegisterUser(user *User) (*User, error) {
return user, nil
}
// get user by erify code
func getVerifyUser(code string) (user *User) {
if len(code) <= base.TimeLimitCodeLength {
return nil
}
// use tail hex username query user
hexStr := code[base.TimeLimitCodeLength:]
if b, err := hex.DecodeString(hexStr); err == nil {
if user, err = GetUserByName(string(b)); user != nil {
return user
}
log.Error("user.getVerifyUser: %v", err)
}
return nil
}
// verify active code when active account
func VerifyUserActiveCode(code string) (user *User) {
minutes := base.Service.ActiveCodeLives
if user = getVerifyUser(code); user != nil {
// time limit code
prefix := code[:base.TimeLimitCodeLength]
data := base.ToStr(user.Id) + user.Email + user.LowerName + user.Passwd + user.Rands
if base.VerifyTimeLimitCode(data, minutes, prefix) {
return user
}
}
return nil
}
// UpdateUser updates user's information.
func UpdateUser(user *User) (err error) {
_, err = orm.Id(user.Id).Update(user)
_, err = orm.Id(user.Id).UseBool().Update(user)
return err
}