handler

package
v0.0.0-...-6599ed9 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 2, 2020 License: MIT Imports: 24 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var AboutGet core.HandlerFunc = func(c *core.Context) core.Response {
	c.Set("url", "about")
	return ArticleGet(c)
}
View Source
var AdminArticleDelete core.HandlerFunc = func(c *core.Context) core.Response {
	id := helpers.StrTo(c.Query("id")).MustInt()

	post := &models.Posts{Id: id}
	if _, err := gosql.Model(post).Delete(); err != nil {
		logger.Error(err)
		return c.Fail(201, "删除失败")
	}
	return c.Redirect(c.Request.Referer())
}
View Source
var AdminArticleGet core.HandlerFunc = func(c *core.Context) core.Response {
	h := gin.H{}
	id := helpers.StrTo(c.Query("id")).MustInt()

	if id > 0 {
		post := &models.Posts{Id: id}
		gosql.Model(post).Get()
		cate := &models.Cates{Id: post.CateId}
		gosql.Model(cate).Get()
		user := &models.Users{Id: post.UserId}
		gosql.Model(user).Get()

		newpost := &models.UserPosts{Posts: *post, Cate: cate, User: user}
		h["Post"] = newpost
	}

	cates := make([]*models.Cates, 0)
	err := gosql.Model(&cates).All()
	h["Cates"] = cates

	if err != nil {
		return c.ErrorMessage(err)
	}
	return c.HTML("admin/post_article", h)
}
View Source
var AdminArticlePost core.HandlerFunc = func(c *core.Context) core.Response {
	post := &models.Posts{}
	if err := c.ShouldBind(post); err != nil {
		return c.Fail(201, "参数错误:"+err.Error())
	}

	post.UserId = c.Session().Get("UserId").(int)

	if post.Title == "" {
		return c.Fail(201, "文章标题不能为空")
	}

	if post.Id > 0 {
		if _, err := gosql.Model(post).Update(); err != nil {
			logger.Error(err)
			return c.Fail(201, "更新文章失败")
		}
	} else {
		if _, err := gosql.Model(post).Create(); err != nil {
			logger.Error(err)
			return c.Fail(201, "发表文章失败")
		}
	}

	return c.Success(post)
}
View Source
var AdminArticlesGet core.HandlerFunc = func(c *core.Context) core.Response {
	num := 10
	h := gin.H{}
	post := &models.Posts{}
	page := helpers.StrTo(c.DefaultQuery("page", "1")).MustInt()
	cateId := helpers.StrTo(c.DefaultQuery("cate_id", "0")).MustInt()
	h["CateId"] = cateId
	if cateId > 0 {
		post.CateId = cateId
	}

	posts, err := models.PostGetList(post, page, num, "", "")

	if err != nil {
		return c.ErrorMessage(err)
	}

	cates := make([]*models.Cates, 0)
	gosql.Model(&cates).All()

	h["Posts"] = posts
	h["Cates"] = cates

	total, err := gosql.Model(&models.Posts{}).Count()
	h["Pager"] = c.Pagination(total, num, page)

	if err != nil {
		return c.ErrorMessage(err)
	}

	return c.HTML("admin/articles", h)
}
View Source
var AdminCateDelete core.HandlerFunc = func(c *core.Context) core.Response {
	id := helpers.StrTo(c.Query("id")).MustInt()
	total, _ := gosql.Model(&models.Posts{}).Where("cate_id = ?", id).Count()

	if total > 0 {
		return c.Fail(201, "该分类下面还有文章,不能删除")
	}

	if _, err := gosql.Model(&models.Cates{Id: id}).Delete(); err != nil {
		logger.Error(err)
		return c.Fail(201, "删除失败")
	}
	return c.Redirect("/admin/cates")
}
View Source
var AdminCateGet core.HandlerFunc = func(c *core.Context) core.Response {
	h := gin.H{}

	id := helpers.StrTo(c.Query("id")).MustInt()
	if id > 0 {
		cate := &models.Cates{Id: id}
		gosql.Model(cate).Get()
		h["Cate"] = cate
	}
	num := 10
	page := helpers.StrTo(c.DefaultQuery("page", "1")).MustInt()
	cates, err := models.CateArtivleCountGetList(page, num)
	h["Cates"] = cates

	total, err := gosql.Model(&models.Cates{}).Count()
	h["Pager"] = c.Pagination(total, num, page)

	if err != nil {
		return c.ErrorMessage(err)
	}

	return c.HTML("admin/cates", h)

}
View Source
var AdminCatePost core.HandlerFunc = func(c *core.Context) core.Response {
	cates := &models.Cates{}
	if err := c.Bind(cates); err != nil {
		return c.Fail(201, "参数错误:"+err.Error())
	}

	if cates.Name == "" {
		return c.Fail(201, "分类名不能为空")
	}

	if cates.Domain == "" {
		return c.Fail(201, "分类缩略名不能为空")
	}

	if cates.Id > 0 {
		if _, err := gosql.Model(cates).Update(); err != nil {
			logger.Error(err)
			return c.Fail(201, "更新失败")
		}
	} else {
		if _, err := gosql.Model(cates).Create(); err != nil {
			logger.Error(err)
			return c.Fail(201, "创建失败")
		}
	}

	return c.Success(nil)
}
View Source
var AdminCommentDelete core.HandlerFunc = func(c *core.Context) core.Response {
	id := helpers.StrTo(c.Query("id")).MustInt()
	if _, err := gosql.Model(&models.Comments{Id: id}).Delete(); err != nil {
		logger.Error(err)
		return c.Fail(201, "删除失败")
	}
	return c.Redirect("/admin/comments")
}
View Source
var AdminCommentGet core.HandlerFunc = func(c *core.Context) core.Response {

	h := gin.H{}
	num := 10
	page := helpers.StrTo(c.DefaultQuery("page", "1")).MustInt()
	comments, err := models.CommentList(page, num)
	h["Comments"] = comments

	total, err := gosql.Model(&models.Comments{}).Count()
	h["Pager"] = c.Pagination(total, num, page)

	if err != nil {
		return c.ErrorMessage(err)
	}

	return c.HTML("admin/comments", h)
}
View Source
var AdminIndex core.HandlerFunc = func(c *core.Context) core.Response {
	return c.HTML("admin/index")
}
View Source
var AdminIndexPost core.HandlerFunc = func(c *core.Context) core.Response {
	c.Request.ParseForm()
	options := c.Request.PostForm

	for k, v := range options {
		gosql.Model(&models.Options{
			OptionValue: v[0],
		}).Where("option_key = ?", k).Update()
	}

	return c.Success(options)
}
View Source
var AdminLinkDelete core.HandlerFunc = func(c *core.Context) core.Response {
	id := helpers.StrTo(c.Query("id")).MustInt()

	if _, err := gosql.Model(&models.Links{Id: id}).Delete(); err != nil {
		logger.Error(err)
		return c.Fail(201, "删除失败")
	}
	return c.Redirect(c.Request.Referer())
}
View Source
var AdminLinkGet core.HandlerFunc = func(c *core.Context) core.Response {
	h := gin.H{}

	id, _ := helpers.StrTo(c.Query("id")).Int()
	if id > 0 {
		link := &models.Links{Id: id}
		gosql.Model(link).Get()
		h["Link"] = link
	}

	num := 10

	page := helpers.StrTo(c.DefaultQuery("page", "1")).MustInt()
	links, err := models.LinkGetList(page, num)
	h["Links"] = links

	total, err := gosql.Model(&models.Links{}).Count()
	h["Pager"] = c.Pagination(total, num, page)

	if err != nil {
		return c.ErrorMessage(err)
	}

	return c.HTML("admin/links", h)
}
View Source
var AdminLinkPost core.HandlerFunc = func(c *core.Context) core.Response {
	links := &models.Links{}
	if err := c.Bind(links); err != nil {
		return c.Fail(201, "参数错误:"+err.Error())
	}

	if links.Name == "" {
		return c.Fail(201, "连接名称不能为空")
	}

	if links.Url == "" {
		return c.Fail(201, "连接地址不能为空")
	}

	if links.Id > 0 {
		if _, err := gosql.Model(links).Update(); err != nil {
			logger.Error(err)
			return c.Fail(201, "更新失败")
		}
	} else {
		if _, err := gosql.Model(links).Create(); err != nil {
			logger.Error(err)
			return c.Fail(201, "创建失败")
		}
	}

	return c.Success(nil)
}
View Source
var AdminMoodDelete core.HandlerFunc = func(c *core.Context) core.Response {
	id := helpers.StrTo(c.Query("id")).MustInt()

	mood := &models.Moods{Id: id}
	if _, err := gosql.Model(mood).Delete(); err != nil {
		logger.Error(err)
		return c.Fail(201, "删除失败")
	}
	return c.Redirect(c.Request.Referer())
}
View Source
var AdminMoodGet core.HandlerFunc = func(c *core.Context) core.Response {
	h := gin.H{}

	id := helpers.StrTo(c.Query("id")).MustInt()
	if id > 0 {
		mood := &models.Moods{Id: id}
		gosql.Model(mood).Get()
		h["Mood"] = mood
	}

	num := 10

	page := helpers.StrTo(c.DefaultQuery("page", "1")).MustInt()
	moods, err := models.MoodGetList(page, num)
	h["Moods"] = moods

	total, err := gosql.Model(&models.Moods{}).Count()
	h["Pager"] = c.Pagination(total, num, page)

	if err != nil {
		return c.ErrorMessage(err)
	}
	return c.HTML("admin/moods", h)
}
View Source
var AdminMoodPost core.HandlerFunc = func(c *core.Context) core.Response {
	moods := &models.Moods{}
	if err := c.Bind(moods); err != nil {
		return c.Fail(201, "参数错误:"+err.Error())
	}

	moods.UserId = c.Session().Get("UserId").(int)

	if moods.Content == "" {
		return c.Fail(201, "内容不能为空")
	}

	if moods.Id > 0 {
		if _, err := gosql.Model(moods).Update(); err != nil {
			logger.Error(err)
			return c.Fail(201, "更新失败")
		}
	} else {
		if _, err := gosql.Model(moods).Create(); err != nil {
			logger.Error(err)
			return c.Fail(201, "发表失败")
		}
	}
	return c.Success(nil)
}
View Source
var AdminRemindDelete core.HandlerFunc = func(c *core.Context) core.Response {
	id := helpers.StrTo(c.Query("id")).MustInt()

	if _, err := gosql.Model(&models.Reminds{Id: id}).Delete(); err != nil {
		logger.Error(err)
		return c.Fail(201, "删除失败")
	}
	return c.Redirect(c.Request.Referer())
}
View Source
var AdminRemindGet core.HandlerFunc = func(c *core.Context) core.Response {
	h := gin.H{}

	id := helpers.StrTo(c.Query("id")).MustInt()
	if id > 0 {
		remind := &models.Reminds{Id: id}
		gosql.Model(remind).Get()
		h["Remind"] = remind
	}

	num := 10

	page := helpers.StrTo(c.DefaultQuery("page", "1")).MustInt()
	reminds, err := models.RemindGetList(page, num)

	h["Reminds"] = reminds

	total, err := gosql.Model(&models.Reminds{}).Count()
	h["Pager"] = c.Pagination(total, num, page)

	h["Types"] = map[int]string{
		0: "固定",
		1: "每分钟",
		2: "每小时",
		3: "每天",
		4: "每周",
		5: "每月",
		6: "每年",
	}

	h["Layouts"] = map[int]string{
		0: "2006-01-02 15:04:05",
		1: "",
		2: "",
		3: "15:04:00",
		4: "15:04:00",
		5: "02日15:04:05",
		6: "01月02日15:04:05",
	}

	h["CurrDate"] = time.Now().Format("2006-01-02 15:04:05")

	if err != nil {
		return c.ErrorMessage(err)
	}
	return c.HTML("admin/remind", h)
}
View Source
var AdminRemindPost core.HandlerFunc = func(c *core.Context) core.Response {
	reminds := &models.Reminds{}
	if err := c.ShouldBind(reminds); err != nil {
		return c.Fail(201, "参数错误:"+err.Error())
	}

	if reminds.Content == "" {
		return c.Fail(201, "提醒内容不能为空")
	}

	if reminds.Id > 0 {
		if _, err := gosql.Model(reminds).Update(); err != nil {
			logger.Error(err)
			return c.Fail(201, "更新失败:"+err.Error())
		}
	} else {
		if _, err := gosql.Model(reminds).Create(); err != nil {
			logger.Error(err)
			return c.Fail(201, "创建失败")
		}
	}

	return c.Success(nil)
}
View Source
var AdminUploadPost core.HandlerFunc = func(c *core.Context) core.Response {

	if config.App.Common.Env == "local" {
		return AdminUploadPostLocal(c)
	}

	file, _, err := c.Request.FormFile("uploadFile")
	if err != nil {
		c.Status(http.StatusBadRequest)
		return c.String("Bad request")
	}
	client, err := oss.New(config.App.OSS.Endpoint, config.App.OSS.AccessKey, config.App.OSS.AccessSecret)

	if err != nil {
		return c.JSON(gin.H{
			"jsonrpc": "2.0",
			"error": gin.H{
				"code":    101,
				"message": err.Error(),
			},
			"id": "id",
		})
	}

	bucket, _ := client.Bucket(config.App.OSS.Bucket)
	day := time.Now().Format("20060102")

	filename := "upload/" + day + "/" + helpers.Md5File(file) + ".png"
	file.Seek(0, 0)

	err = bucket.PutObject(filename, file)
	if err != nil {
		return c.JSON(gin.H{
			"jsonrpc": "2.0",
			"error": gin.H{
				"code":    100,
				"message": err.Error(),
			},
			"id": "id",
		})
	}

	return c.String("https://static.fifsky.com/" + filename + "!blog")
}
View Source
var AdminUploadPostLocal core.HandlerFunc = func(c *core.Context) core.Response {
	file, header, err := c.Request.FormFile("uploadFile")
	if err != nil {
		c.Status(http.StatusBadRequest)
		return c.String("Bad request")
	}
	filename := header.Filename
	day := time.Now().Format("20060102")
	dir := "static/upload/" + day
	exists, _ := helpers.PathExists(dir)
	if !exists {
		err := os.MkdirAll(dir, 0755)
		if err != nil {
			logger.Fatal(err)
			return c.JSON(gin.H{
				"jsonrpc": "2.0",
				"error": gin.H{
					"code":    100,
					"message": "Failed to create directory.",
				},
				"id": "id",
			})
		}
	}

	out, err := os.Create(dir + "/" + filename)
	if err != nil {
		logger.Fatal(err)

		return c.JSON(gin.H{
			"jsonrpc": "2.0",
			"error": gin.H{
				"code":    100,
				"message": "Failed to create file.",
			},
			"id": "id",
		})
	}
	defer out.Close()

	img, err := png.Decode(file)
	if err != nil {
		logger.Fatal(err)
	}
	file.Close()

	m := resize.Resize(800, 0, img, resize.Lanczos3)
	err = png.Encode(out, m)

	if err != nil {
		logger.Fatal(err)
		return c.JSON(gin.H{
			"jsonrpc": "2.0",
			"error": gin.H{
				"code":    100,
				"message": "Failed to save directory.",
			},
			"id": "id",
		})
	}
	return c.String("/static/upload/" + day + "/" + filename)
}
View Source
var AdminUserGet core.HandlerFunc = func(c *core.Context) core.Response {
	h := gin.H{}
	id := helpers.StrTo(c.Query("id")).MustInt()
	if id > 0 {
		user := &models.Users{Id: id}
		err := gosql.Model(user).Get()
		if err != nil {
			return c.Message("用户不存在", "您访问的用户不存在或已经删除!")
		}
		h["User"] = user
	}

	return c.HTML("admin/post_user", h)
}
View Source
var AdminUserPost core.HandlerFunc = func(c *core.Context) core.Response {
	users := &models.Users{}
	if err := c.Bind(users); err != nil {
		return c.Fail(201, "参数错误:"+err.Error())
	}

	if users.Name == "" {
		return c.Fail(201, "用户名不能为空")
	}

	if users.Password == "" {
		return c.Fail(201, "密码不能为空")
	}

	if users.NickName == "" {
		return c.Fail(201, "昵称不能为空")
	}

	users.Password = helpers.Md5(users.Password)

	if users.Id > 0 {
		if _, err := gosql.Model(users).Update(); err != nil {
			logger.Error(err)
			return c.Fail(201, "更新失败")
		}
	} else {
		if _, err := gosql.Model(users).Create(); err != nil {
			logger.Error(err)
			return c.Fail(201, "创建失败")
		}
	}

	return c.Success(nil)
}
View Source
var AdminUserStatus core.HandlerFunc = func(c *core.Context) core.Response {
	id := helpers.StrTo(c.Query("id")).MustInt()
	status := helpers.StrTo(c.Query("status")).MustInt()

	if _, err := gosql.Model(&models.Users{}).Where("id = ? and status = ?", id, status).Delete(); err != nil {
		logger.Error(err)
		return c.Fail(201, "删除失败")
	}
	return c.Redirect("/admin/users")
}
View Source
var AdminUsersGet core.HandlerFunc = func(c *core.Context) core.Response {
	h := gin.H{}
	num := 10

	page := helpers.StrTo(c.DefaultQuery("page", "1")).MustInt()
	users, err := models.UserGetList(page, num)

	h["Users"] = users

	total, err := gosql.Model(&models.Users{}).Count()
	h["Pager"] = c.Pagination(total, num, page)

	if err != nil {
		return c.ErrorMessage(err)
	}
	return c.HTML("admin/users", h)
}
View Source
var ArticleGet core.HandlerFunc = func(c *core.Context) core.Response {
	id := helpers.StrTo(c.Param("id")).MustInt()
	url := c.GetString("url")
	post := &models.UserPosts{}

	if id > 0 {
		post.Id = id
	}

	if url != "" {
		post.Url = url
	}

	err := gosql.Model(post).Get()

	if err != nil {
		return c.Message("文章不存在", "您访问的文章不存在或已经删除!")
	}

	_, err = gosql.Table("posts").Where("id = ?", post.Id).Update(map[string]interface{}{
		"view_num": gosql.Expr("view_num + 1"),
	})

	if err != nil {
		logger.Error("view num add error", err)
	}

	h := gin.H{}
	h["Title"] = post.Title
	h["Post"] = post

	if url == "" {
		prev, err := models.PostPrev(post.Id)
		if err == nil {
			h["Prev"] = prev
		}
		next, err := models.PostNext(post.Id)
		if err == nil {
			h["Next"] = next
		}
	}

	page := helpers.StrTo(c.DefaultQuery("page", "1")).MustInt()
	comments, err := models.PostComments(post.Id, page, 100)
	if err == nil {
		h["Comments"] = comments
	}

	return c.HTML("index/article", h)
}
View Source
var Avatar core.HandlerFunc = func(c *core.Context) core.Response {
	name := c.DefaultQuery("name", "default")

	ig, err := identicon.New(
		"fifsky",
		5,
		5,
	)

	if err != nil {
		panic(err)
	}

	ii, err := ig.Draw(name)

	if err != nil {
		return nil
	}

	ii.Png(300, c.Writer)
	return nil
}
View Source
var CaptchaGet core.HandlerFunc = func(c *core.Context) core.Response {
	_, file := path.Split(c.Request.URL.Path)
	ext := path.Ext(file)
	id := file[:len(file)-len(ext)]
	if ext == "" || id == "" {
		return c.Fail(202, "id not found")
	}

	if c.Query("reload") != "" {
		captcha.Reload(id)
	}

	var imgHeight = captcha.StdHeight
	var imgWidth = captcha.StdWidth
	if c.Query("h") != "" {
		ih, err := strconv.Atoi(c.Query("h"))
		if err == nil {
			imgHeight = ih
		}
	}

	if c.Query("w") != "" {
		iw, err := strconv.Atoi(c.Query("w"))
		if err == nil {
			imgWidth = iw
		}
	}

	switch ext {
	case ".png":
		c.Header("Content-Type", "image/png")
		captcha.WriteImage(c.Writer, id, imgWidth, imgHeight)
		return nil
	default:
		return c.Fail(202, "ext not found")
	}

	return c.Fail(202, "ext not found")
}
View Source
var CommentPost core.HandlerFunc = func(c *core.Context) core.Response {
	comment := &models.Comments{}
	if err := c.ShouldBind(comment); err != nil {
		return c.Fail(201, "参数错误:"+err.Error())
	}

	if comment.Name == "" {
		return c.Fail(201, "昵称不能为空")
	}

	if comment.Content == "" {
		return c.Fail(201, "评论内容不能为空")
	}

	if comment.PostId <= 0 {
		return c.Fail(201, "非法评论")
	}

	if err := TCaptchaVerify(c.PostForm("ticket"), c.PostForm("randstr"), c.ClientIP()); err != nil {
		return c.Fail(201, err)
	}

	post := &models.Posts{}
	err := gosql.Model(post).Where("id = ?", comment.PostId).Get()
	if err != nil {
		return c.Fail(201, "文章不存在")
	}

	comment.CreatedAt = time.Now()
	comment.IP = c.ClientIP()

	if _, err := gosql.Model(comment).Create(); err != nil {
		logger.Error(err)
		return c.Fail(201, "评论失败"+err.Error())
	}

	body := c.HTMLRender("layout/comment_item", comment)

	content := "您有新的评论!\n"
	content += fmt.Sprintf("文章:%s\n", post.Title)
	content += fmt.Sprintf("评论内容:%s\n", comment.Content)
	content += fmt.Sprintf("评论昵称:%s\n", comment.Name)
	content += fmt.Sprintf("评论时间:%s\n", comment.CreatedAt.Format("2006-01-02 15:04:05"))
	content += fmt.Sprintf("评论IP:%s\n", comment.IP)

	ding.Alarm(content)

	return c.Success(gin.H{
		"content": body,
	})
}
View Source
var FeedGet core.HandlerFunc = func(c *core.Context) core.Response {
	now := time.Now()
	options := c.GetStringMapString("options")

	feed := &feeds.Feed{
		Title:       options["site_name"],
		Link:        &feeds.Link{Href: "https://fifsky.com"},
		Description: options["site_desc"],
		Author:      &feeds.Author{Name: "fifsky", Email: "[email protected]"},
		Created:     now,
	}

	cid := helpers.StrTo(c.DefaultQuery("cid", "0")).MustInt()

	post := &models.Posts{}
	if cid > 0 {
		post.CateId = cid
	}

	posts, err := models.PostGetList(post, 1, 10, "", "")

	if err != nil {
		return c.ErrorMessage(err)
	}

	for _, v := range posts {
		feed.Items = append(feed.Items, &feeds.Item{
			Title:       v.Title,
			Link:        &feeds.Link{Href: fmt.Sprintf("https://fifsky.com/article/%d", v.Id)},
			Description: v.Content,
			Author:      &feeds.Author{Name: v.User.NickName, Email: "[email protected]"},
			Created:     now,
		})
	}

	err = feed.WriteAtom(c.Writer)
	if err != nil {
		return c.ErrorMessage(err)
	}
	return nil
}
View Source
var Handle404 core.HandlerFunc = func(c *core.Context) core.Response {
	return c.Message("未找到(404 Not Found)", "抱歉,您浏览的页面未找到。")
}
View Source
var IndexGet core.HandlerFunc = func(c *core.Context) core.Response {
	options := c.GetStringMapString("options")
	num, err := helpers.StrTo(options["post_num"]).Int()
	if err != nil || num < 1 {
		num = 10
	}

	domain := c.Param("domain")
	cate := &models.Cates{}

	if domain != "" {
		cate.Domain = domain
		gosql.Model(cate).Get()
	}

	artdate := ""
	year := c.Param("year")
	month := c.Param("month")

	if year != "" && month != "" {
		artdate = year + "-" + month
	}

	page := helpers.StrTo(c.DefaultQuery("page", "1")).MustInt()
	post := &models.Posts{}
	if cate.Id > 0 {
		post.CateId = cate.Id
	}

	keyword := c.Query("keyword")

	post.Type = 1
	posts, err := models.PostGetList(post, page, num, artdate, keyword)
	if err != nil {
		return c.ErrorMessage(err)
	}

	h := gin.H{}
	h["Posts"] = posts

	builder := gosql.Model(post)

	if artdate != "" {
		builder.Where("DATE_FORMAT(created_at,'%Y-%m') = ?", artdate)
	}

	if keyword != "" {
		builder.Where("title like ?", "%"+keyword+"%")
	}

	total, err := builder.Count()
	h["Pager"] = c.Pagination(total, num, page)

	if err != nil {
		return c.ErrorMessage(err)
	}
	return c.HTML("index/index", h)
}
View Source
var LoginGet core.HandlerFunc = func(c *core.Context) core.Response {
	if _, ok := c.SharedData["LoginUser"]; ok {
		return c.Redirect("/admin/index")
	}
	return c.HTML("admin/login")
}
View Source
var LoginPost core.HandlerFunc = func(c *core.Context) core.Response {
	user_name := c.PostForm("user_name")
	password := c.PostForm("user_pass")

	if user_name == "" || password == "" {
		return c.Fail(201, "用户名或密码不能为空")
	}

	if err := TCaptchaVerify(c.PostForm("ticket"), c.PostForm("randstr"), c.ClientIP()); err != nil {
		return c.Fail(201, err)
	}

	user := &models.Users{Name: user_name}
	err := gosql.Model(user).Get()

	if err != nil {
		return c.Fail(201, "用户名或者密码错误")
	}

	if user.Password != helpers.Md5(password) {
		return c.Fail(201, "用户名或者密码错误")
	}

	c.Session().Set("UserId", user.Id)
	c.Session().Save()

	return c.Success(nil)
}
View Source
var LogoutGet core.HandlerFunc = func(c *core.Context) core.Response {
	c.Session().Delete("UserId")
	c.Session().Save()
	return c.Redirect("/")
}

Functions

func TCaptchaVerify

func TCaptchaVerify(ticket, randstr, ip string) error

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL