diff options
Diffstat (limited to 'server/user.go')
| -rw-r--r-- | server/user.go | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/server/user.go b/server/user.go new file mode 100644 index 0000000..204fbbe --- /dev/null +++ b/server/user.go @@ -0,0 +1,42 @@ +package server + +import ( + "net" + + "git.rctt.net/solec/core" +) + +type User struct { + Name string + Conns map[net.Conn]struct{} +} + +func NewUser(conn net.Conn, auth core.Auth) User { + u := User{ + Name: auth.Name, + Conns: make(map[net.Conn]struct{}), + } + + u.Conns[conn] = struct{}{} + return u +} + +func (u *User) Send(payload core.Wrapper) error { + for c := range u.Conns { + if err := core.Send(c, payload); err != nil { + return err + } + } + + return nil +} + +func (u *User) Auth(pass string) error { + // TODO: Implement auth + + if pass != "valid" { + return core.ErrAuthInvalidPassword + } + + return nil +} |
