Sessions in etcd KV store instead of cookies

This commit is contained in:
2022-10-30 20:11:36 +01:00
parent c2c6a72f81
commit f4c2d61dc3
41 changed files with 1008 additions and 202 deletions

View File

@@ -13,7 +13,7 @@ func (renderer *Renderer) AuthGroups(w http.ResponseWriter, r *http.Request, gro
}
func (renderer *Renderer) AuthOnboarding(w http.ResponseWriter, r *http.Request, key string, onboarding any) {
files := renderer.ThemeConfig.GetStringSlice("views.auth.onboarding.files")
files := renderer.ThemeConfig.GetStringSlice("views.auth.onboarding.form.files")
state := NewState(r, renderer.ThemeConfig, "")
state.ViewState = map[string]any{
"key": key,
@@ -22,3 +22,41 @@ func (renderer *Renderer) AuthOnboarding(w http.ResponseWriter, r *http.Request,
renderer.RenderNoLayout("onboarding", w, r, files, state)
}
func (renderer *Renderer) AuthOnboardingKO(w http.ResponseWriter, r *http.Request, key string) {
files := renderer.ThemeConfig.GetStringSlice("views.auth.onboarding.ko.files")
state := NewState(r, renderer.ThemeConfig, "")
state.ViewState = map[string]any{
"key": key,
}
renderer.RenderNoLayout("onboarding", w, r, files, state)
}
func (renderer *Renderer) LostPasswordInit(w http.ResponseWriter, r *http.Request) {
files := renderer.ThemeConfig.GetStringSlice("views.auth.lost_password.init.files")
state := NewState(r, renderer.ThemeConfig, "")
state.ViewState = map[string]any{}
renderer.RenderNoLayout("lost_password_init", w, r, files, state)
}
func (renderer *Renderer) LostPasswordRecover(w http.ResponseWriter, r *http.Request, recover any) {
files := renderer.ThemeConfig.GetStringSlice("views.auth.lost_password.recover.form.files")
state := NewState(r, renderer.ThemeConfig, "")
state.ViewState = map[string]any{
"recover": recover,
}
renderer.RenderNoLayout("lost_password_recover", w, r, files, state)
}
func (renderer *Renderer) LostPasswordRecoverKO(w http.ResponseWriter, r *http.Request, key string) {
files := renderer.ThemeConfig.GetStringSlice("views.auth.lost_password.recover.ko.files")
state := NewState(r, renderer.ThemeConfig, "")
state.ViewState = map[string]any{
"key": key,
}
renderer.RenderNoLayout("lost_password_recover_ko", w, r, files, state)
}

View File

@@ -4,14 +4,16 @@ import (
"encoding/json"
"html/template"
"net/http"
mobilityaccountsstorage "git.coopgo.io/coopgo-platform/mobility-accounts/storage"
)
const beneficiariesMenu = "beneficiaries"
type BeneficiariesListState struct {
Count int `json:"count"`
CacheId string `json:"cache_id"`
Beneficiaries []any `json:"beneficiaries"`
Count int `json:"count"`
CacheId string `json:"cache_id"`
Beneficiaries []mobilityaccountsstorage.Account `json:"beneficiaries"`
}
func (s BeneficiariesListState) JSON() template.JS {
@@ -26,7 +28,7 @@ func (s BeneficiariesListState) JSONWithLimits(a int, b int) template.JS {
return s.JSON()
}
func (renderer *Renderer) BeneficiariesList(w http.ResponseWriter, r *http.Request, accounts []any, cacheid string) {
func (renderer *Renderer) BeneficiariesList(w http.ResponseWriter, r *http.Request, accounts []mobilityaccountsstorage.Account, cacheid string) {
files := renderer.ThemeConfig.GetStringSlice("views.beneficiaries.list.files")
state := NewState(r, renderer.ThemeConfig, beneficiariesMenu)

View File

@@ -1,10 +1,14 @@
package renderer
import "net/http"
import (
"net/http"
mobilityaccountsstorage "git.coopgo.io/coopgo-platform/mobility-accounts/storage"
)
const vehiclesMenu = "vehicles"
func (renderer *Renderer) VehiclesSearch(w http.ResponseWriter, r *http.Request, beneficiaries []any, searched bool, vehicles []any, beneficiary any, startdate any, enddate any) {
func (renderer *Renderer) VehiclesSearch(w http.ResponseWriter, r *http.Request, beneficiaries []mobilityaccountsstorage.Account, searched bool, vehicles []any, beneficiary any, startdate any, enddate any) {
files := renderer.ThemeConfig.GetStringSlice("views.vehicles.search.files")
state := NewState(r, renderer.ThemeConfig, vehiclesMenu)
viewstate := map[string]any{