comparison auth/session.go @ 340:4c211ad5349e

Embed Reader and Writer in BinReader and BinWriter to make API more distinct.
author Sascha L. Teichmann <teichmann@intevation.de>
date Sun, 05 Aug 2018 15:48:36 +0200
parents 33b59c848771
children ac23905e64b1
comparison
equal deleted inserted replaced
339:33b59c848771 340:4c211ad5349e
41 Roles: roles, 41 Roles: roles,
42 } 42 }
43 } 43 }
44 44
45 func (s *Session) serialize(w io.Writer) error { 45 func (s *Session) serialize(w io.Writer) error {
46 wr := misc.BinWriter{W: w} 46 wr := misc.BinWriter{w, nil}
47 wr.Write(s.ExpiresAt) 47 wr.WriteBin(s.ExpiresAt)
48 wr.WriteString(s.User) 48 wr.WriteString(s.User)
49 wr.WriteString(s.Password) 49 wr.WriteString(s.Password)
50 wr.Write(uint32(len(s.Roles))) 50 wr.WriteBin(uint32(len(s.Roles)))
51 for _, role := range s.Roles { 51 for _, role := range s.Roles {
52 wr.WriteString(role) 52 wr.WriteString(role)
53 } 53 }
54 return wr.Err 54 return wr.Err
55 } 55 }
56 56
57 func (s *Session) deserialize(r io.Reader) error { 57 func (s *Session) deserialize(r io.Reader) error {
58 var x Session 58 var x Session
59 var n uint32 59 var n uint32
60 rd := misc.BinReader{R: r} 60 rd := misc.BinReader{r, nil}
61 rd.Read(&x.ExpiresAt) 61 rd.ReadBin(&x.ExpiresAt)
62 rd.ReadString(&x.User) 62 rd.ReadString(&x.User)
63 rd.ReadString(&x.Password) 63 rd.ReadString(&x.Password)
64 rd.Read(&n) 64 rd.ReadBin(&n)
65 x.Roles = make(Roles, n) 65 x.Roles = make(Roles, n)
66 for i := uint32(0); n > 0 && i < n; i++ { 66 for i := uint32(0); n > 0 && i < n; i++ {
67 rd.ReadString(&x.Roles[i]) 67 rd.ReadString(&x.Roles[i])
68 } 68 }
69 if rd.Err == nil { 69 if rd.Err == nil {