minor bugfixes and cleanup
This commit is contained in:
parent
2a203f6f29
commit
97d914bce4
26 changed files with 198 additions and 221 deletions
|
|
@ -88,21 +88,19 @@ func loginHandler(ctx *Context) {
|
|||
case "POST":
|
||||
user := ctx.Form("user")
|
||||
password := ctx.Form("password")
|
||||
if !ctx.CheckXsrf(nil) {
|
||||
if !ctx.CheckXsrf() {
|
||||
return
|
||||
}
|
||||
if user == "" || password == "" {
|
||||
ctx.Data.Msg = "wrong inputs"
|
||||
ctx.Exec()
|
||||
ctx.Error("wrong inputs")
|
||||
return
|
||||
}
|
||||
u, err := ctx.Srv.DB.Login(user, password)
|
||||
if err != nil {
|
||||
ctx.Data.Msg = err.Error()
|
||||
ctx.Exec()
|
||||
ctx.Error(err)
|
||||
return
|
||||
}
|
||||
ctx.SetCookie(map[string]interface{}{userClaim: u.Username, adminClaim: u.Admin})
|
||||
ctx.SetCookie(jwt.Claims{userClaim: u.Username, adminClaim: u.Admin})
|
||||
ctx.Redirect(core.IndexURI, 302)
|
||||
}
|
||||
}
|
||||
|
|
@ -118,18 +116,16 @@ func searchHandler(ctx *Context) {
|
|||
ctx.Exec()
|
||||
case "POST":
|
||||
search := ctx.Form("search")
|
||||
if !ctx.CheckXsrf(nil) {
|
||||
if !ctx.CheckXsrf() {
|
||||
return
|
||||
}
|
||||
|
||||
//TODO
|
||||
//res, err := ctx.Srv.DB.Index.Search(search)
|
||||
//if err != nil {
|
||||
// ctx.Data.Msg = err.Error()
|
||||
// ctx.Exec()
|
||||
// return
|
||||
//}
|
||||
//ctx.Data.Data = res
|
||||
res, err := ctx.Srv.DB.Index.Search(search)
|
||||
if err != nil {
|
||||
ctx.Error(err)
|
||||
return
|
||||
}
|
||||
ctx.Data.Data = res
|
||||
ctx.Data.Search = search
|
||||
ctx.Exec()
|
||||
}
|
||||
|
|
@ -164,7 +160,7 @@ func pageNewHandler(ctx *Context) {
|
|||
Perm: perm,
|
||||
}
|
||||
ctx.Data.Data = p
|
||||
if !ctx.CheckXsrf(nil) {
|
||||
if !ctx.CheckXsrf() {
|
||||
return
|
||||
}
|
||||
if section != core.WikiSection {
|
||||
|
|
@ -172,8 +168,7 @@ func pageNewHandler(ctx *Context) {
|
|||
}
|
||||
page, err := ctx.Srv.DB.CreatePage(title, section, markdown, ctx.User(), perm)
|
||||
if err != nil {
|
||||
ctx.Data.Msg = err.Error()
|
||||
ctx.Exec()
|
||||
ctx.Error(err)
|
||||
return
|
||||
}
|
||||
ctx.Redirect(page.StoreTitle, 302)
|
||||
|
|
@ -242,6 +237,10 @@ func pageShareHandler(ctx *Context) {
|
|||
ctx.NotFound()
|
||||
return
|
||||
}
|
||||
if page.Perm != core.Private {
|
||||
ctx.Error("only private pages can be shared")
|
||||
return
|
||||
}
|
||||
ctx.Data.Data = st
|
||||
ctx.Data.Title = page.Title
|
||||
ctx.Data.BodyTitle = page.Title
|
||||
|
|
@ -250,13 +249,12 @@ func pageShareHandler(ctx *Context) {
|
|||
ctx.Exec()
|
||||
case "POST":
|
||||
duration := ctx.Form("duration")
|
||||
if !ctx.CheckXsrf(nil) {
|
||||
if !ctx.CheckXsrf() {
|
||||
return
|
||||
}
|
||||
d, err := time.ParseDuration(duration)
|
||||
if err != nil {
|
||||
ctx.Data.Msg = err.Error()
|
||||
ctx.Exec()
|
||||
ctx.Error(err)
|
||||
return
|
||||
}
|
||||
t := jwt.NewToken(map[string]interface{}{
|
||||
|
|
@ -286,36 +284,31 @@ func pageBlacklistHandler(ctx *Context) {
|
|||
case "GET":
|
||||
ctx.Exec()
|
||||
case "POST":
|
||||
if !ctx.CheckXsrf(nil) {
|
||||
if !ctx.CheckXsrf() {
|
||||
return
|
||||
}
|
||||
t, err := jwt.DecodeToken(ctx.Form("share"))
|
||||
if err != nil {
|
||||
ctx.Data.Msg = err.Error()
|
||||
ctx.Exec()
|
||||
ctx.Error(err)
|
||||
return
|
||||
}
|
||||
err = ctx.Srv.JWT.Verify(t)
|
||||
if err != nil {
|
||||
ctx.Data.Msg = err.Error()
|
||||
ctx.Exec()
|
||||
ctx.Error(err)
|
||||
return
|
||||
}
|
||||
user := t.Claims.GetString(sharedClaim)
|
||||
if user == "" {
|
||||
ctx.Data.Msg = "blacklisting denied: no share token"
|
||||
ctx.Exec()
|
||||
ctx.Error("blacklisting denied: no share token")
|
||||
return
|
||||
}
|
||||
if ctx.User() != user {
|
||||
ctx.Data.Msg = "blacklisting denied: token was issued by " + user
|
||||
ctx.Exec()
|
||||
ctx.Error("blacklisting denied: token was issued by " + user)
|
||||
return
|
||||
}
|
||||
err = ctx.Srv.JWT.Invalidate(t)
|
||||
if err != nil {
|
||||
ctx.Data.Msg = err.Error()
|
||||
ctx.Exec()
|
||||
ctx.Error(err)
|
||||
return
|
||||
}
|
||||
ctx.Exec()
|
||||
|
|
@ -342,13 +335,12 @@ func pageEditHandler(ctx *Context) {
|
|||
page.Markdown = ctx.Form("markdown")
|
||||
page.Perm = core.ParsePermString(ctx.Form("perm"))
|
||||
ctx.Data.Data = page
|
||||
if !ctx.CheckXsrf(nil) {
|
||||
if !ctx.CheckXsrf() {
|
||||
return
|
||||
}
|
||||
err = ctx.Srv.DB.UpdatePage(title, section, page.Markdown, ctx.User(), page.Perm)
|
||||
if err != nil {
|
||||
ctx.Data.Msg = err.Error()
|
||||
ctx.Exec()
|
||||
ctx.Error(err)
|
||||
return
|
||||
}
|
||||
ctx.Redirect(page.StoreTitle, 302)
|
||||
|
|
@ -367,12 +359,11 @@ func pageDelHandler(ctx *Context) {
|
|||
case "GET":
|
||||
ctx.Exec()
|
||||
case "POST":
|
||||
if !ctx.CheckXsrf(nil) {
|
||||
if !ctx.CheckXsrf() {
|
||||
return
|
||||
}
|
||||
if err := ctx.Srv.DB.DeletePage(title, section, ctx.User()); err != nil {
|
||||
ctx.Data.Msg = err.Error()
|
||||
ctx.Exec()
|
||||
ctx.Error(err)
|
||||
return
|
||||
}
|
||||
ctx.Redirect(core.IndexURI, 302)
|
||||
|
|
@ -416,17 +407,15 @@ func userNewHandler(ctx *Context) {
|
|||
if admin == "0" {
|
||||
adm = true
|
||||
}
|
||||
if !ctx.CheckXsrf(nil) {
|
||||
if !ctx.CheckXsrf() {
|
||||
return
|
||||
}
|
||||
if user == "" || password == "" || password != repeat {
|
||||
ctx.Data.Msg = "wrong inputs"
|
||||
ctx.Exec()
|
||||
ctx.Error("wrong inputs")
|
||||
return
|
||||
}
|
||||
if err := ctx.Srv.DB.CreateUser(user, password, adm); err != nil {
|
||||
ctx.Data.Msg = err.Error()
|
||||
ctx.Exec()
|
||||
ctx.Error(err)
|
||||
return
|
||||
}
|
||||
ctx.Redirect("/user", 302)
|
||||
|
|
@ -443,8 +432,7 @@ func userEditHandler(ctx *Context) {
|
|||
case "GET":
|
||||
u, err := ctx.Srv.DB.GetUserWithoutPassword(ctx.Var("user"))
|
||||
if err != nil {
|
||||
ctx.Data.Msg = err.Error()
|
||||
ctx.Exec()
|
||||
ctx.Error(err)
|
||||
return
|
||||
}
|
||||
ctx.Data.Data = u
|
||||
|
|
@ -458,25 +446,22 @@ func userEditHandler(ctx *Context) {
|
|||
if admin == "0" {
|
||||
adm = true
|
||||
}
|
||||
if !ctx.CheckXsrf(nil) {
|
||||
if !ctx.CheckXsrf() {
|
||||
return
|
||||
}
|
||||
if user == "" || password != repeat {
|
||||
ctx.Data.Msg = "wrong inputs"
|
||||
ctx.Exec()
|
||||
ctx.Error("wrong inputs")
|
||||
return
|
||||
}
|
||||
if ctx.Admin() {
|
||||
if err := ctx.Srv.DB.AdminUpdateUser(user, password, adm); err != nil {
|
||||
ctx.Data.Msg = err.Error()
|
||||
ctx.Exec()
|
||||
ctx.Error(err)
|
||||
return
|
||||
}
|
||||
} else {
|
||||
if user == ctx.User() {
|
||||
if err := ctx.Srv.DB.UpdateUserPassword(user, password); err != nil {
|
||||
ctx.Data.Msg = err.Error()
|
||||
ctx.Exec()
|
||||
ctx.Error(err)
|
||||
return
|
||||
}
|
||||
ctx.Redirect(core.IndexURI, 302)
|
||||
|
|
@ -505,8 +490,7 @@ func userDelHandler(ctx *Context) {
|
|||
case "GET":
|
||||
user, err := ctx.Srv.DB.GetUserWithoutPassword(ctx.Var("user"))
|
||||
if err != nil {
|
||||
ctx.Data.Msg = err.Error()
|
||||
ctx.Exec()
|
||||
ctx.Error(err)
|
||||
return
|
||||
}
|
||||
ctx.Data.Data = user
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue