func CmdBackup(context *GoInk.Context) { if context.Method == "POST" { file, e := cmd.DoBackup(context.App(), true) if e != nil { Json(context, false).Set("msg", e.Error()).End() return } Json(context, true).Set("file", file).End() context.Do("bakcup_success", file) model.CreateMessage("backup", "[1]"+file) return } if context.Method == "DELETE" { file := context.String("file") if file == "" { Json(context, false).End() return } cmd.RemoveBackupFile(file) Json(context, true).End() context.Do("backup_delete", file) return } files, _ := cmd.GetBackupFiles() context.Layout("admin/cmd") context.Render("admin/cmd/backup", map[string]interface{}{ "Files": files, "Title": "备份", }) }
func AdminPlugin(context *GoInk.Context) { if context.Method == "POST" { action := context.String("action") if action == "" { Json(context, false).End() return } pln := context.String("plugin") if action == "activate" { plugin.Activate(pln) plugin.Update(context.App()) Json(context, true).End() context.Do("plugin_activated", pln) return } if action == "deactivate" { plugin.Deactivate(pln) Json(context, true).End() context.Do("plugin_deactivated", pln) return } context.Status = 405 Json(context, false).End() return } context.Layout("admin/admin") context.Render("admin/plugin", map[string]interface{}{ "Title": "插件", "Plugins": plugin.GetPlugins(), }) }
func CmdLogs(context *GoInk.Context) { if context.Method == "DELETE" { cmd.RemoveLogFile(context.App(), context.String("file")) Json(context, true).End() return } context.Layout("admin/cmd") context.Render("admin/cmd/log", map[string]interface{}{ "Title": "日志", "Logs": cmd.GetLogs(context.App()), }) }
func CmdReader(ctx *GoInk.Context) { if ctx.Method == "POST" { email := ctx.String("email") model.RemoveReader(email) Json(ctx, true).End() return } ctx.Layout("admin/cmd") ctx.Render("admin/cmd/reader", map[string]interface{}{ "Title": "读者", "Readers": model.GetReaders(), }) }
func AdminComments(context *GoInk.Context) { if context.Method == "DELETE" { id := context.Int("id") cmt := model.GetCommentById(id) model.RemoveComment(cmt.Cid, id) Json(context, true).End() context.Do("comment_delete", id) return } if context.Method == "PUT" { id := context.Int("id") cmt2 := model.GetCommentById(id) cmt2.Status = "approved" cmt2.GetReader().Active = true model.SaveComment(cmt2) Json(context, true).End() context.Do("comment_change_status", cmt2) return } if context.Method == "POST" { // get required data pid := context.Int("pid") cid := model.GetCommentById(pid).Cid uid, _ := strconv.Atoi(context.Cookie("token-user")) user := model.GetUserById(uid) co := new(model.Comment) co.Author = user.Nick co.Email = user.Email co.Url = user.Url co.Content = context.String("content") co.Avatar = utils.Gravatar(co.Email, "50") co.Pid = pid co.Ip = context.Ip co.UserAgent = context.UserAgent co.IsAdmin = true model.CreateComment(cid, co) Json(context, true).Set("comment", co.ToJson()).End() model.CreateMessage("comment", co) context.Do("comment_reply", co) return } page := context.IntOr("page", 1) comments, pager := model.GetCommentList(page, 10) context.Layout("admin/admin") context.Render("admin/comments", map[string]interface{}{ "Title": "评论", "Comments": comments, "Pager": pager, }) }
func AdminPassword(context *GoInk.Context) { if context.Method == "POST" { uid, _ := strconv.Atoi(context.Cookie("token-user")) user := model.GetUserById(uid) if !user.CheckPassword(context.String("old")) { Json(context, false).Set("msg", "旧密码错误").End() return } user.ChangePassword(context.String("new")) go model.SyncUsers() Json(context, true).End() context.Do("password_update", user) return } context.Layout("admin/admin") context.Render("admin/password", map[string]interface{}{ "Title": "修改密码", //"User":user, }) }
func CmdTheme(ctx *GoInk.Context) { if ctx.Method == "POST" { change := ctx.String("cache") if change != "" { cmd.SetThemeCache(ctx, change == "true") Json(ctx, true).End() return } theme := ctx.String("theme") if theme != "" { model.SetSetting("site_theme", theme) model.SyncSettings() Json(ctx, true).End() return } return } ctx.Layout("admin/cmd") ctx.Render("admin/cmd/theme", map[string]interface{}{ "Title": "主题", "Themes": cmd.GetThemes(ctx.App().Get("view_dir")), "CurrentTheme": model.GetSetting("site_theme"), }) }
func CmdBackupFile(context *GoInk.Context) { file := context.String("file") context.Download(cmd.GetBackupFileAbsPath(file)) context.Do("backup_download", file) }