Initial multi-user support using namespaces

This commit is contained in:
Juan Font Alonso 2021-02-28 00:58:09 +01:00
parent 562e996996
commit b7655b1f68
6 changed files with 229 additions and 41 deletions

7
app.go
View file

@ -74,7 +74,11 @@ func (h *Headscale) Serve() error {
}
// RegisterMachine is executed from the CLI to register a new Machine using its MachineKey
func (h *Headscale) RegisterMachine(key string) error {
func (h *Headscale) RegisterMachine(key string, namespace string) error {
ns, err := h.GetNamespace(namespace)
if err != nil {
return err
}
mKey, err := wgcfg.ParseHexKey(key)
if err != nil {
log.Printf("Cannot parse client key: %s", err)
@ -103,6 +107,7 @@ func (h *Headscale) RegisterMachine(key string) error {
return err
}
m.IPAddress = ip.String()
m.NamespaceID = ns.ID
m.Registered = true
db.Save(&m)
fmt.Println("Machine registered 🎉")