Release 5 december 2022 - Agenda and Fleets fixes
This commit is contained in:
@@ -9,6 +9,7 @@ import (
|
||||
"git.coopgo.io/coopgo-apps/parcoursmob/utils/identification"
|
||||
"git.coopgo.io/coopgo-platform/emailing"
|
||||
"git.coopgo.io/coopgo-platform/groups-management/storage"
|
||||
"github.com/coreos/go-oidc"
|
||||
"github.com/spf13/viper"
|
||||
)
|
||||
|
||||
@@ -35,6 +36,7 @@ func NewRenderer(global *viper.Viper, templates_dir string) *Renderer {
|
||||
}
|
||||
|
||||
func (renderer *Renderer) Render(name string, w http.ResponseWriter, r *http.Request, files []string, state RenderState) {
|
||||
|
||||
genericFiles := renderer.ThemeConfig.GetStringSlice("views.generic.files")
|
||||
|
||||
prefixed_files := []string{}
|
||||
@@ -49,6 +51,7 @@ func (renderer *Renderer) Render(name string, w http.ResponseWriter, r *http.Req
|
||||
t := template.New(name).Funcs(
|
||||
template.FuncMap{
|
||||
"timeFrom": TimeFrom,
|
||||
"timeFormat": TimeFormat,
|
||||
"genderISO5218": GenderISO5218,
|
||||
"dict": Dict,
|
||||
"json": JSON,
|
||||
@@ -66,6 +69,7 @@ func (renderer *Renderer) Render(name string, w http.ResponseWriter, r *http.Req
|
||||
}
|
||||
|
||||
func (renderer *Renderer) RenderNoLayout(name string, w http.ResponseWriter, r *http.Request, files []string, state RenderState) {
|
||||
|
||||
prefixed_files := []string{}
|
||||
for _, f := range files {
|
||||
prefixed_files = append(prefixed_files, renderer.templateFile(f))
|
||||
@@ -75,6 +79,7 @@ func (renderer *Renderer) RenderNoLayout(name string, w http.ResponseWriter, r *
|
||||
t := template.New(name).Funcs(
|
||||
template.FuncMap{
|
||||
"timeFrom": TimeFrom,
|
||||
"timeFormat": TimeFormat,
|
||||
"genderISO5218": GenderISO5218,
|
||||
"dict": Dict,
|
||||
"json": JSON,
|
||||
@@ -97,14 +102,34 @@ func (r *Renderer) templateFile(file string) string {
|
||||
type RenderState struct {
|
||||
icons.IconSet
|
||||
LayoutState
|
||||
Group any
|
||||
Roles any
|
||||
ViewState any // This is a state specific to a given view
|
||||
UserID string
|
||||
UserClaims map[string]any
|
||||
Group storage.Group
|
||||
Roles any
|
||||
ViewState any // This is a state specific to a given view
|
||||
}
|
||||
|
||||
func NewState(r *http.Request, themeConfig *viper.Viper, menuState string) RenderState {
|
||||
iconset := themeConfig.GetStringMapString("icons.svg")
|
||||
|
||||
// Get State elements from Request
|
||||
var userid string
|
||||
var claims map[string]any
|
||||
|
||||
u := r.Context().Value(identification.IdtokenKey)
|
||||
if u != nil {
|
||||
if current_user_token, ok := u.(*oidc.IDToken); ok {
|
||||
userid = current_user_token.Subject
|
||||
}
|
||||
|
||||
c := r.Context().Value(identification.ClaimsKey)
|
||||
if c != nil {
|
||||
if current_user_claims, ok := c.(map[string]any); ok {
|
||||
claims = current_user_claims
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
g := r.Context().Value(identification.GroupKey)
|
||||
if g == nil {
|
||||
@@ -187,7 +212,6 @@ func NewState(r *http.Request, themeConfig *viper.Viper, menuState string) Rende
|
||||
})
|
||||
}
|
||||
|
||||
/*************************** my code ******************************/
|
||||
if modules["support"] != nil && modules["support"].(bool) {
|
||||
ls.MenuItems = append(ls.MenuItems, MenuItem{
|
||||
Title: "Support",
|
||||
@@ -197,7 +221,6 @@ func NewState(r *http.Request, themeConfig *viper.Viper, menuState string) Rende
|
||||
})
|
||||
|
||||
}
|
||||
/*************************** my code ******************************/
|
||||
|
||||
if modules["directory"] != nil && modules["directory"].(bool) {
|
||||
ls.MenuItems = append(ls.MenuItems, MenuItem{
|
||||
@@ -212,6 +235,8 @@ func NewState(r *http.Request, themeConfig *viper.Viper, menuState string) Rende
|
||||
IconSet: icons.NewIconSet(iconset),
|
||||
Group: group,
|
||||
Roles: roles,
|
||||
UserID: userid,
|
||||
UserClaims: claims,
|
||||
LayoutState: ls,
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user