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) } }
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) } }
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") }
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) } }
func LogoutHandler(ctx *middleware.Context) { ctx.S.Set("SignedUser", nil) ctx.Redirect("/index") }