mirror of
https://github.com/Eggbertx/gochan.git
synced 2025-09-11 11:46:24 -07:00
Add option lister to manage endpoint
This commit is contained in:
parent
9bb7b3f86c
commit
ce1da78361
2 changed files with 30 additions and 12 deletions
|
@ -22,9 +22,7 @@ func CallManageFunction(writer http.ResponseWriter, request *http.Request) {
|
|||
action := request.FormValue("action")
|
||||
staffRank := GetStaffRank(request)
|
||||
var managePageBuffer bytes.Buffer
|
||||
if action == "" {
|
||||
action = "announcements"
|
||||
} else if action == "postinfo" {
|
||||
if action == "postinfo" {
|
||||
writer.Header().Add("Content-Type", "application/json")
|
||||
writer.Header().Add("Cache-Control", "max-age=5, must-revalidate")
|
||||
}
|
||||
|
@ -38,18 +36,22 @@ func CallManageFunction(writer http.ResponseWriter, request *http.Request) {
|
|||
}
|
||||
}
|
||||
|
||||
if _, ok := manageFunctions[action]; ok {
|
||||
if staffRank >= manageFunctions[action].Permissions {
|
||||
managePageBuffer.Write([]byte(manageFunctions[action].Callback(writer, request)))
|
||||
} else if staffRank == 0 && manageFunctions[action].Permissions == 0 {
|
||||
managePageBuffer.Write([]byte(manageFunctions[action].Callback(writer, request)))
|
||||
} else if staffRank == 0 {
|
||||
managePageBuffer.Write([]byte(manageFunctions["login"].Callback(writer, request)))
|
||||
if action == "" {
|
||||
managePageBuffer.Write([]byte(actionHTMLLinker(manageFunctions)))
|
||||
} else {
|
||||
if _, ok := manageFunctions[action]; ok {
|
||||
if staffRank >= manageFunctions[action].Permissions {
|
||||
managePageBuffer.Write([]byte(manageFunctions[action].Callback(writer, request)))
|
||||
} else if staffRank == 0 && manageFunctions[action].Permissions == 0 {
|
||||
managePageBuffer.Write([]byte(manageFunctions[action].Callback(writer, request)))
|
||||
} else if staffRank == 0 {
|
||||
managePageBuffer.Write([]byte(manageFunctions["login"].Callback(writer, request)))
|
||||
} else {
|
||||
managePageBuffer.Write([]byte(action + " is undefined."))
|
||||
}
|
||||
} else {
|
||||
managePageBuffer.Write([]byte(action + " is undefined."))
|
||||
}
|
||||
} else {
|
||||
managePageBuffer.Write([]byte(action + " is undefined."))
|
||||
}
|
||||
if action != "getstaffjquery" && action != "postinfo" {
|
||||
managePageBuffer.Write([]byte("</body></html>"))
|
||||
|
|
|
@ -2,6 +2,7 @@ package manage
|
|||
|
||||
import (
|
||||
"net/http"
|
||||
"sort"
|
||||
"time"
|
||||
|
||||
"github.com/gochan-org/gochan/pkg/gclog"
|
||||
|
@ -86,3 +87,18 @@ func GetStaffRank(request *http.Request) int {
|
|||
}
|
||||
return staff.Rank
|
||||
}
|
||||
|
||||
func actionHTMLLinker(funcMap map[string]ManageFunction) string {
|
||||
var links = ""
|
||||
var keys []string
|
||||
for key := range funcMap {
|
||||
if funcMap[key].Title != "" {
|
||||
keys = append(keys, key)
|
||||
}
|
||||
}
|
||||
sort.Strings(keys)
|
||||
for _, key := range keys {
|
||||
links += `<a href="manage?action=` + key + `">` + funcMap[key].Title + "</a></br>"
|
||||
}
|
||||
return links
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue