コード例 #1
0
ファイル: blogHandler.go プロジェクト: mchobits/go-blog
func PublishBlog(ctx *middleware.Context, blog model.Blog) {
	switch ctx.R.Method {
	case "POST":
		if blog.Title == "" || blog.Content == "" {
			ctx.AddError(Translate(ctx.S.Get("Lang").(string), "message.error.publish.failed"))
		} else {
			tags := ctx.R.PostForm["tags"]
			blog.SetTags(tags)
			signedUser := ctx.S.Get("SignedUser").(model.User)
			blog.State = "PUBLISHED"
			blog.PublishDate = time.Now()
			if blog.Version == 0 {
				blog.Priority = 5
				blog.Author = signedUser
				blog.CreateUser = signedUser.Username
				err := blog.Insert()
				PanicIf(err)
			} else {
				err := blog.Update()
				PanicIf(err)
			}
		}
		ctx.Redirect("/blog/view/" + IntString(blog.Id))
	default:
		tags, err := blog.GetAllTags()
		PanicIf(err)
		ctx.Set("Tags", tags)

		ctx.HTML(200, "blog/edit", ctx)
	}
}
コード例 #2
0
ファイル: userHandler.go プロジェクト: mchobits/go-blog
func LoginHandler(ctx *middleware.Context, formErr binding.Errors, loginUser model.UserLoginForm) {
	switch ctx.R.Method {
	case "POST":
		ctx.JoinFormErrors(formErr)
		password := Md5(loginUser.Password)
		user := &model.User{Username: loginUser.Username, Password: password}
		if !ctx.HasError() {
			if has, err := user.Exist(); has {
				PanicIf(err)
				if user.Locked {
					ctx.Set("User", user)
					ctx.AddError(Translate(ctx.S.Get("Lang").(string), "message.error.invalid.username.or.password"))
					ctx.HTML(200, "user/login", ctx)
					return
				}
				ctx.S.Set("SignedUser", user)
				Log.Info(user.Username, " login")
				ctx.Redirect("/admin/dashboard")
			} else {
				ctx.Set("User", user)
				ctx.AddError(Translate(ctx.S.Get("Lang").(string), "message.error.invalid.username.or.password"))
				ctx.HTML(200, "user/login", ctx)
			}
		} else {
			ctx.HTML(200, "user/login", ctx)
		}
	default:
		ctx.HTML(200, "user/login", ctx)
	}
}
コード例 #3
0
ファイル: adminHandler.go プロジェクト: mchobits/go-blog
func AboutHandler(ctx *middleware.Context) {
	settings := model.GetSettings()
	about := ctx.R.FormValue("about")
	settings.About = about
	err := settings.Update()
	PanicIf(err)
	dbSettings := model.GetSettings()
	ctx.S.Set("Settings", dbSettings)

	ctx.Redirect("/about")
}
コード例 #4
0
ファイル: linkHandler.go プロジェクト: mchobits/go-blog
func InsertLink(ctx *middleware.Context, link model.Link) {
	switch ctx.R.Method {
	case "POST":
		err := link.Insert()
		PanicIf(err)
		ctx.Set("success", true)
		ctx.Set("message", Translate(ctx.S.Get("Lang").(string), "message.send.success"))
		ctx.Redirect("/link/all")
	default:
		ctx.HTML(200, "link/edit", ctx)
	}
}
コード例 #5
0
ファイル: userHandler.go プロジェクト: mchobits/go-blog
func LogoutHandler(ctx *middleware.Context) {
	ctx.S.Set("SignedUser", nil)
	ctx.Redirect("/index")
}