示例#1
0
//注册
func (u *UserController) SignUp(user models.User) revel.Result {

	user.Validation(u.q, u.Validation)

	if u.Validation.HasErrors() {
		u.Validation.Keep()
		return u.Redirect(routes.UserController.SignUpRedirect())
	}
	notEncrypted := user.Password
	user.Password = models.EncryptPassword(user.Password)
	user.ValidateCode = strings.Replace(uuid.NewUUID().String(), "-", "", -1)
	if !user.Save(u.q) {
		u.Flash.Error("注册用户失败")
		return u.Redirect(routes.UserController.SignUpRedirect())
	}
	subject := "激活账号 —— 奇享-向世界分享我们"
	content := `这封信是由 奇享 发送的。
				您收到这封邮件,是由于在 奇享 获取了新用户注册地址使用 了这个邮箱地址。如果您并没有访问过 奇享,
				或没有进行上述操作,请忽 略这封邮件。
				您不需要退订或进行其他进一步的操作。
				----------------------------------------------------------------------
				新用户注册说明
				----------------------------------------------------------------------
				如果您是 奇享 的新用户,或在修改您的注册 Email 时使用了本地址,我们需 要对您的地址有效性进行验证以避免垃圾邮件或地址被滥用。
				您只需点击下面的链接即可进行用户注册,
				"http://localhost:9000/user/validate/` + user.ValidateCode + `"
				(如果上面不是链接形式,请将该地址手工粘贴到浏览器地址栏再访问)
				 感谢您的访问,祝您使用愉快!`
	//发送验证邮件
	go sendMail(subject, content, []string{user.Email})
	//注册成功登陆
	return u.SignIn(user.Email, notEncrypted, "")

}
示例#2
0
func (u *UserController) SignIn(email, password, remember string) revel.Result {

	u.Validation.Required(email).Message("请输入邮箱")

	if u.Validation.HasErrors() {
		u.Validation.Keep()
		u.FlashParams()
		return u.Redirect(routes.UserController.SignInRedirect())
	}
	//查询用户
	user := new(models.User)
	condition := qbs.NewCondition("email = ?", email).
		And("password = ?", models.EncryptPassword(password))
	//models.EncryptPassword(password)
	u.q.Condition(condition).Find(user)
	if user.Id == 0 {
		u.Validation.Keep()
		u.FlashParams()
		u.Flash.Out["email"] = email
		u.Flash.Error("邮箱或密码错误!")
		return u.Redirect(routes.UserController.SignInRedirect())
	}

	u.Session["userName"] = user.UserName
	u.Session["userId"] = strconv.Itoa(int(user.Id))
	u.Session["isLogin"] = "******"

	//记住密码
	if remember == "1" {
		fmt.Println(remember)
	}
	preUrl, ok := u.Session["preUrl"]
	if ok {
		return u.Redirect(preUrl)
	}
	return u.Redirect(routes.App.Index())
}