tfstated/pkg/webui/index.go
Julien Dessaux d40595cacb
All checks were successful
main / publish (push) Has been skipped
main / main (push) Successful in 4m36s
main / deploy (push) Has been skipped
feat(webui): open a currated version of the user accounts section to non admin users
2025-04-15 00:08:24 +02:00

36 lines
819 B
Go

package webui
import (
"fmt"
"net/http"
"git.adyxax.org/adyxax/tfstated/pkg/model"
"go.n16f.net/uuid"
)
type Page struct {
AccountId uuid.UUID
IsAdmin bool
LightMode bool
Section string
Title string
}
func makePage(r *http.Request, page *Page) *Page {
account := r.Context().Value(model.AccountContextKey{}).(*model.Account)
page.AccountId = account.Id
page.IsAdmin = account.IsAdmin
settings := r.Context().Value(model.SettingsContextKey{}).(*model.Settings)
page.LightMode = settings.LightMode
return page
}
func handleIndexGET() http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
if r.URL.Path == "/" {
http.Redirect(w, r, "/states", http.StatusFound)
} else {
errorResponse(w, r, http.StatusNotFound, fmt.Errorf("Page not found"))
}
})
}