59 lines
1014 B
Go
59 lines
1014 B
Go
package app
|
|
|
|
import (
|
|
"maxwarden/middleware"
|
|
"maxwarden/users"
|
|
|
|
. "maxwarden/ui"
|
|
|
|
. "maragu.dev/gomponents"
|
|
. "maragu.dev/gomponents/html"
|
|
|
|
"net/http"
|
|
)
|
|
|
|
func AccountHandler(w http.ResponseWriter, r *http.Request) {
|
|
identity := middleware.GetIdentity(r)
|
|
session := middleware.GetSession(r)
|
|
|
|
|
|
type accountTableItem struct {
|
|
Property string
|
|
Value interface{}
|
|
}
|
|
|
|
cols := []string {
|
|
"Property",
|
|
"Value",
|
|
}
|
|
|
|
user, _ := users.FetchById(identity.UserID)
|
|
|
|
entries := []accountTableItem {
|
|
{ "UserId", user.ID },
|
|
{ "Username", user.Username },
|
|
{ "Name", user.Firstname + " " + user.Lastname },
|
|
{ "Email", user.Email },
|
|
{ "Last Login", user.LastLogin },
|
|
}
|
|
|
|
func() Node {
|
|
return AppLayout("Account", *identity, session,
|
|
AutoTableLite(
|
|
cols,
|
|
entries,
|
|
func(item accountTableItem) Node {
|
|
return Tr(
|
|
Td(B(Text(item.Property))),
|
|
Td(ToText(item.Value)),
|
|
)
|
|
},
|
|
AutoTableOptions{
|
|
BorderX: true,
|
|
Shadow: true,
|
|
},
|
|
),
|
|
)
|
|
}().Render(w)
|
|
}
|