diff --git a/Backend/models/user.go b/Backend/models/user.go index d9dc698..a95008c 100644 --- a/Backend/models/user.go +++ b/Backend/models/user.go @@ -14,6 +14,25 @@ type User struct { Arbeitszeit float32 `json:"arbeitszeit"` } +func (u *User) GetUserFromSession(Session *scs.SessionManager, ctx context.Context) (User, error) { + var user User + var err error + if helper.GetEnv("GO_ENV", "production") == "debug" { + user, err = (*User).GetByPersonalNummer(nil, 123) + } else { + if !Session.Exists(ctx, "user") { + log.Println("No user in session storage!") + return user, errors.New("No user in session storage!") + } + user, err = (*User).GetByPersonalNummer(nil, Session.GetInt(ctx, "user")) + } + if err != nil { + log.Println("Cannot get user from session!") + return user, err + } + return user, nil +} + func (u *User) GetAll() ([]User, error) { qStr, err := DB.Prepare((`SELECT card_uid, vorname, nachname FROM personal_daten;`)) var users []User