summaryrefslogtreecommitdiffstats
path: root/server/user.go
blob: 204fbbeb8a1906e8e8fb718d9b5904af65cb61f0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
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
}