user list listing

This commit is contained in:
2018-07-08 14:40:20 +02:00
parent 2c8a12e757
commit 3d42d61e0d
9 changed files with 112 additions and 17 deletions

View File

@@ -23,7 +23,7 @@ type TemplateData struct {
func (wc *WebController) newTemplateData(w http.ResponseWriter, r *http.Request) *TemplateData {
var t = &TemplateData{
Authenticated: false,
Username: "Fornax",
Username: "",
APIEndpoint: template.URL(wc.conf.APIURLExternal),
}

View File

@@ -21,5 +21,63 @@ func (wc *WebController) serveLogout(
}
}
http.Redirect(w, r, "/", 302)
http.Redirect(w, r, "/", http.StatusPermanentRedirect)
}
func (wc *WebController) serveUserHome(
w http.ResponseWriter,
r *http.Request,
p httprouter.Params,
) {
var key string
var err error
if key, err = wc.getAPIKey(r); err != nil {
http.Redirect(w, r, "/", http.StatusTemporaryRedirect)
return
}
var api = pixelapi.New(wc.conf.APIURLInternal, key)
files, aerr := api.UserFiles(0, 18)
if aerr != nil {
log.Error("Cannot get user files: %v", aerr)
wc.serveNotFound(w, r)
return
}
templateData := wc.newTemplateData(w, r)
templateData.Other = files
err = wc.templates.Get().ExecuteTemplate(w, "user_home", templateData)
if err != nil {
log.Error("Failed to execute template: %s", err)
}
}
func (wc *WebController) serveUserFiles(
w http.ResponseWriter,
r *http.Request,
p httprouter.Params,
) {
var key string
var err error
if key, err = wc.getAPIKey(r); err != nil {
http.Redirect(w, r, "/", http.StatusTemporaryRedirect)
return
}
var api = pixelapi.New(wc.conf.APIURLInternal, key)
files, aerr := api.UserFiles(0, 1000)
if aerr != nil {
log.Error("Cannot get user files: %v", aerr)
wc.serveNotFound(w, r)
return
}
templateData := wc.newTemplateData(w, r)
templateData.Other = files
err = wc.templates.Get().ExecuteTemplate(w, "file_manager", templateData)
if err != nil {
log.Error("Failed to execute template: %s", err)
}
}

View File

@@ -50,8 +50,8 @@ func New(r *httprouter.Router, prefix string, conf *conf.PixelWebConfig) *WebCon
r.GET(prefix+"/login" /* */, wc.serveTemplate("login"))
r.GET(prefix+"/logout" /* */, wc.serveTemplate("logout"))
r.POST(prefix+"/logout" /* */, wc.serveLogout)
r.GET(prefix+"/user" /* */, wc.serveTemplate("user_home"))
r.GET(prefix+"/files" /* */, wc.serveTemplate("file_manager"))
r.GET(prefix+"/user" /* */, wc.serveUserHome)
r.GET(prefix+"/files" /* */, wc.serveUserFiles)
r.NotFound = http.HandlerFunc(wc.serveNotFound)