Mercurial > gemma
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 { |