1package config
2
3import (
4 "net/mail"
5
6 "github.com/charmbracelet/soft-serve/proto"
7 "github.com/charmbracelet/soft-serve/server/db/types"
8 "golang.org/x/crypto/ssh"
9)
10
11var _ proto.User = &user{}
12
13type user struct {
14 user *types.User
15 keys []*types.PublicKey
16}
17
18func (u *user) Name() string {
19 return u.user.Name
20}
21
22func (u *user) Email() *mail.Address {
23 return u.user.Address()
24}
25
26func (u *user) Login() *string {
27 return u.user.Login
28}
29
30func (u *user) Password() *string {
31 return u.user.Password
32}
33
34func (u *user) IsAdmin() bool {
35 return u.user.Admin
36}
37
38func (u *user) PublicKeys() []ssh.PublicKey {
39 ks := make([]ssh.PublicKey, len(u.keys))
40 for i, k := range u.keys {
41 ks[i] = k
42 }
43 return ks
44}