Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 16 additions & 13 deletions auth/host_session.go
Original file line number Diff line number Diff line change
Expand Up @@ -180,7 +180,10 @@ func SessionHandler(conn *websocket.Conn) {
handleHostRegErr(conn, err)
return
}
currHost, err := logic.GetHost(result.Host.ID.String())
currHost := &schema.Host{
ID: result.Host.ID,
}
err = currHost.Get(db.WithContext(context.TODO()))
if err != nil {
handleHostRegErr(conn, err)
return
Expand Down Expand Up @@ -240,14 +243,14 @@ func SessionHandler(conn *websocket.Conn) {
}

// CheckNetRegAndHostUpdate - run through networks and send a host update
func CheckNetRegAndHostUpdate(key models.EnrollmentKey, h *models.Host, username string) {
func CheckNetRegAndHostUpdate(key models.EnrollmentKey, h *schema.Host, username string) {
// publish host update through MQ
featureFlags := logic.GetFeatureFlags()
for _, netID := range key.Networks {
network := &schema.Network{Name: netID}
if err := network.Get(db.WithContext(context.TODO())); err == nil {
if featureFlags.EnableDeviceApproval && !network.AutoJoin {
if logic.DoesHostExistinTheNetworkAlready(h, models.NetworkID(netID)) {
if logic.DoesHostExistinTheNetworkAlready(h, schema.NetworkID(netID)) {
continue
}
if err := (&schema.PendingHost{
Expand Down Expand Up @@ -276,37 +279,37 @@ func CheckNetRegAndHostUpdate(key models.EnrollmentKey, h *models.Host, username

if len(username) > 0 {
logic.LogEvent(&models.Event{
Action: models.JoinHostToNet,
Action: schema.JoinHostToNet,
Source: models.Subject{
ID: username,
Name: username,
Type: models.UserSub,
Type: schema.UserSub,
},
TriggeredBy: username,
Target: models.Subject{
ID: h.ID.String(),
Name: h.Name,
Type: models.DeviceSub,
Type: schema.DeviceSub,
},
NetworkID: models.NetworkID(netID),
Origin: models.Dashboard,
NetworkID: schema.NetworkID(netID),
Origin: schema.Dashboard,
})
} else {
logic.LogEvent(&models.Event{
Action: models.JoinHostToNet,
Action: schema.JoinHostToNet,
Source: models.Subject{
ID: key.Value,
Name: key.Tags[0],
Type: models.EnrollmentKeySub,
Type: schema.EnrollmentKeySub,
},
TriggeredBy: username,
Target: models.Subject{
ID: h.ID.String(),
Name: h.Name,
Type: models.DeviceSub,
Type: schema.DeviceSub,
},
NetworkID: models.NetworkID(netID),
Origin: models.Dashboard,
NetworkID: schema.NetworkID(netID),
Origin: schema.Dashboard,
})
}

Expand Down
9 changes: 4 additions & 5 deletions cli/cmd/user/create.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ package user

import (
"github.com/gravitl/netmaker/cli/functions"
"github.com/gravitl/netmaker/models"
"github.com/gravitl/netmaker/schema"
"github.com/spf13/cobra"
"gorm.io/datatypes"
Expand All @@ -14,11 +13,11 @@ var userCreateCmd = &cobra.Command{
Short: "Create a new user",
Long: `Create a new user`,
Run: func(cmd *cobra.Command, args []string) {
user := &schema.User{Username: username, Password: password, PlatformRoleID: models.UserRoleID(platformID)}
user := &schema.User{Username: username, Password: password, PlatformRoleID: schema.UserRoleID(platformID)}
if len(groups) > 0 {
grMap := make(map[models.UserGroupID]struct{})
grMap := make(map[schema.UserGroupID]struct{})
for _, groupID := range groups {
grMap[models.UserGroupID(groupID)] = struct{}{}
grMap[schema.UserGroupID(groupID)] = struct{}{}
}
user.UserGroups = datatypes.NewJSONType(grMap)
}
Expand All @@ -31,7 +30,7 @@ func init() {

userCreateCmd.Flags().StringVar(&username, "name", "", "Name of the user")
userCreateCmd.Flags().StringVar(&password, "password", "", "Password of the user")
userCreateCmd.Flags().StringVarP(&platformID, "platform-role", "r", models.ServiceUser.String(),
userCreateCmd.Flags().StringVarP(&platformID, "platform-role", "r", schema.ServiceUser.String(),
"Platform Role of the user; run `nmctl roles list` to see available user roles")
userCreateCmd.MarkFlagRequired("name")
userCreateCmd.MarkFlagRequired("password")
Expand Down
7 changes: 3 additions & 4 deletions cli/cmd/user/update.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ package user

import (
"github.com/gravitl/netmaker/cli/functions"
"github.com/gravitl/netmaker/models"
"github.com/gravitl/netmaker/schema"
"github.com/spf13/cobra"
"gorm.io/datatypes"
Expand All @@ -16,12 +15,12 @@ var userUpdateCmd = &cobra.Command{
Run: func(cmd *cobra.Command, args []string) {
user := &schema.User{Username: args[0]}
if platformID != "" {
user.PlatformRoleID = models.UserRoleID(platformID)
user.PlatformRoleID = schema.UserRoleID(platformID)
}
if len(groups) > 0 {
grMap := make(map[models.UserGroupID]struct{})
grMap := make(map[schema.UserGroupID]struct{})
for _, groupID := range groups {
grMap[models.UserGroupID(groupID)] = struct{}{}
grMap[schema.UserGroupID(groupID)] = struct{}{}
}
user.UserGroups = datatypes.NewJSONType(grMap)
}
Expand Down
26 changes: 13 additions & 13 deletions controllers/acls.go
Original file line number Diff line number Diff line change
Expand Up @@ -216,7 +216,7 @@ func getAcls(w http.ResponseWriter, r *http.Request) {
logic.ReturnErrorResponse(w, r, logic.FormatError(err, "badrequest"))
return
}
acls, err := logic.ListAclsByNetwork(models.NetworkID(netID))
acls, err := logic.ListAclsByNetwork(schema.NetworkID(netID))
if err != nil {
logger.Log(0, r.Header.Get("user"), "failed to get all network acl entries: ", err.Error())
logic.ReturnErrorResponse(w, r, logic.FormatError(err, "internal"))
Expand Down Expand Up @@ -313,20 +313,20 @@ func createAcl(w http.ResponseWriter, r *http.Request) {
return
}
logic.LogEvent(&models.Event{
Action: models.Create,
Action: schema.Create,
Source: models.Subject{
ID: r.Header.Get("user"),
Name: r.Header.Get("user"),
Type: models.UserSub,
Type: schema.UserSub,
},
TriggeredBy: r.Header.Get("user"),
Target: models.Subject{
ID: acl.ID,
Name: acl.Name,
Type: models.AclSub,
Type: schema.AclSub,
},
NetworkID: acl.NetworkID,
Origin: models.Dashboard,
Origin: schema.Dashboard,
})
go mq.PublishPeerUpdate(true)
logic.ReturnSuccessResponseWithJson(w, r, acl, "created acl successfully")
Expand Down Expand Up @@ -375,24 +375,24 @@ func updateAcl(w http.ResponseWriter, r *http.Request) {
return
}
logic.LogEvent(&models.Event{
Action: models.Update,
Action: schema.Update,
Source: models.Subject{
ID: r.Header.Get("user"),
Name: r.Header.Get("user"),
Type: models.UserSub,
Type: schema.UserSub,
},
TriggeredBy: r.Header.Get("user"),
Target: models.Subject{
ID: acl.ID,
Name: acl.Name,
Type: models.AclSub,
Type: schema.AclSub,
},
Diff: models.Diff{
Old: acl,
New: updateAcl.Acl,
},
NetworkID: acl.NetworkID,
Origin: models.Dashboard,
Origin: schema.Dashboard,
})
go mq.PublishPeerUpdate(true)
logic.ReturnSuccessResponse(w, r, "updated acl "+acl.Name)
Expand Down Expand Up @@ -429,20 +429,20 @@ func deleteAcl(w http.ResponseWriter, r *http.Request) {
return
}
logic.LogEvent(&models.Event{
Action: models.Delete,
Action: schema.Delete,
Source: models.Subject{
ID: r.Header.Get("user"),
Name: r.Header.Get("user"),
Type: models.UserSub,
Type: schema.UserSub,
},
TriggeredBy: r.Header.Get("user"),
Target: models.Subject{
ID: acl.ID,
Name: acl.Name,
Type: models.AclSub,
Type: schema.AclSub,
},
NetworkID: acl.NetworkID,
Origin: models.Dashboard,
Origin: schema.Dashboard,
Diff: models.Diff{
Old: acl,
New: nil,
Expand Down
30 changes: 15 additions & 15 deletions controllers/dns.go
Original file line number Diff line number Diff line change
Expand Up @@ -140,20 +140,20 @@ func createNs(w http.ResponseWriter, r *http.Request) {
return
}
logic.LogEvent(&models.Event{
Action: models.Create,
Action: schema.Create,
Source: models.Subject{
ID: r.Header.Get("user"),
Name: r.Header.Get("user"),
Type: models.UserSub,
Type: schema.UserSub,
},
TriggeredBy: r.Header.Get("user"),
Target: models.Subject{
ID: ns.ID,
Name: ns.Name,
Type: models.NameserverSub,
Type: schema.NameserverSub,
},
NetworkID: models.NetworkID(ns.NetworkID),
Origin: models.Dashboard,
NetworkID: schema.NetworkID(ns.NetworkID),
Origin: schema.Dashboard,
})

go mq.PublishPeerUpdate(false)
Expand Down Expand Up @@ -252,24 +252,24 @@ func updateNs(w http.ResponseWriter, r *http.Request) {
updateFallback = true
}
event := &models.Event{
Action: models.Update,
Action: schema.Update,
Source: models.Subject{
ID: r.Header.Get("user"),
Name: r.Header.Get("user"),
Type: models.UserSub,
Type: schema.UserSub,
},
TriggeredBy: r.Header.Get("user"),
Target: models.Subject{
ID: ns.ID,
Name: updateNs.Name,
Type: models.NameserverSub,
Type: schema.NameserverSub,
},
Diff: models.Diff{
Old: ns,
New: updateNs,
},
NetworkID: models.NetworkID(ns.NetworkID),
Origin: models.Dashboard,
NetworkID: schema.NetworkID(ns.NetworkID),
Origin: schema.Dashboard,
}

if !ns.Default {
Expand Down Expand Up @@ -352,20 +352,20 @@ func deleteNs(w http.ResponseWriter, r *http.Request) {
return
}
logic.LogEvent(&models.Event{
Action: models.Delete,
Action: schema.Delete,
Source: models.Subject{
ID: r.Header.Get("user"),
Name: r.Header.Get("user"),
Type: models.UserSub,
Type: schema.UserSub,
},
TriggeredBy: r.Header.Get("user"),
Target: models.Subject{
ID: ns.ID,
Name: ns.Name,
Type: models.NameserverSub,
Type: schema.NameserverSub,
},
NetworkID: models.NetworkID(ns.NetworkID),
Origin: models.Dashboard,
NetworkID: schema.NetworkID(ns.NetworkID),
Origin: schema.Dashboard,
Diff: models.Diff{
Old: ns,
New: nil,
Expand Down
13 changes: 9 additions & 4 deletions controllers/dns_test.go
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
package controller

import (
"fmt"
"net"
"os"
"testing"

"github.com/google/uuid"
"github.com/gravitl/netmaker/schema"
"github.com/stretchr/testify/assert"
"github.com/txn2/txeh"
"golang.zx2c4.com/wireguard/wgctrl/wgtypes"
Expand All @@ -15,7 +17,7 @@ import (
"github.com/gravitl/netmaker/models"
)

var dnsHost models.Host
var dnsHost schema.Host

func TestGetAllDNS(t *testing.T) {
deleteAllDNS(t)
Expand Down Expand Up @@ -425,14 +427,17 @@ func TestValidateDNSCreate(t *testing.T) {

func createHost() {
k, _ := wgtypes.ParseKey("DM5qhLAE20PG9BbfBCger+Ac9D2NDOwCtY1rbYDLf34=")
dnsHost = models.Host{
dnsHost = schema.Host{
ID: uuid.New(),
PublicKey: k.PublicKey(),
PublicKey: schema.WgKey{Key: k.PublicKey()},
HostPass: "password",
OS: "linux",
Name: "dnshost",
}
_ = logic.CreateHost(&dnsHost)
err := logic.CreateHost(&dnsHost)
if err != nil {
fmt.Println("ERROR CREATING HOST", err.Error())
}
}

func deleteAllDNS(t *testing.T) {
Expand Down
Loading