Beispiel #1
0
func (c *LoginController) Post() {
	account := c.Input().Get("account")
	password := c.Input().Get("password")
	autologin := c.Input().Get("autologin") == "on"

	//数据库比较
	pass, err := models.VerifyUser(common.MakeMD5(account), common.MakeMD5(password))
	if err != nil {
		c.Redirect("/login", 301)
		beego.Error(err)
		return
	}
	if pass {
		beego.Error("login successful!")
		maxage := 0
		if autologin {
			maxage = 1<<31 - 1
		}
		c.Ctx.SetCookie("account", common.MakeMD5(account), maxage, "/")
		c.Ctx.SetCookie("password", common.MakeMD5(password), maxage, "/")

		c.SetSession("account", common.MakeMD5(account))
		// c.SetSession("password", password)
	} else {
		c.Redirect("/login", 301)
		beego.Error("login failed!")
		return
	}
	c.Redirect("/", 301)
	return
}
Beispiel #2
0
func (c *TopicController) Post() {
	session_account := fmt.Sprintf("%v", c.GetSession("account"))
	session_password := fmt.Sprintf("%v", c.GetSession("password"))
	pass, err := models.VerifyUser(session_account, session_password)
	if err != nil {
		beego.Error(err)
		return
	}

	if pass {
		c.Redirect("/login", 302)
		return
	}

	//account := c.Input().Get("account")
	title := c.Input().Get("title")
	content := c.Input().Get("content")
	tid := c.Input().Get("tid")
	op_type := c.Input().Get("type")

	switch op_type {
	case "1":
		//添加文章
		err := models.AddTopic(session_account, title, content)
		if err != nil {
			beego.Error(err)
		}

		c.Redirect("/topic", 301)
		break
	case "2":
		//修改文章
		err := models.ModifyTopic(session_account, tid, title, content)
		if err != nil {
			beego.Error(err)
		}

		c.Redirect(fmt.Sprintf("/topic/view/%s", tid), 301)
		break
	case "3":
		name, _ := models.GetUserName(session_account)
		err := models.AddTopicReply(tid, -1, session_account, name, content)
		if err != nil {
			beego.Error(err)
		}

		c.Redirect(fmt.Sprintf("/topic/view/%s", tid), 301)
		break
	}
}
Beispiel #3
0
func checkAccount(ctx *context.Context) bool {
	ck, err := ctx.Request.Cookie("account")
	if err != nil {
		beego.Error(err)
		return false
	}
	account := ck.Value

	ck, err = ctx.Request.Cookie("password")
	if err != nil {
		beego.Error(err)
		return false
	}
	password := ck.Value

	pass, err := models.VerifyUser(account, password)
	if err != nil {
		return false
	}

	return pass
}