Skip to content

Commit

Permalink
add ip whitelist fields to the translation layer for ddi
Browse files Browse the repository at this point in the history
  • Loading branch information
Zach-Johnson committed Jan 16, 2020
1 parent ca7dd6f commit 4139986
Show file tree
Hide file tree
Showing 7 changed files with 55 additions and 33 deletions.
12 changes: 7 additions & 5 deletions rest/account_apikey.go
Original file line number Diff line number Diff line change
Expand Up @@ -169,11 +169,13 @@ var (

func apiKeyToDDIAPIKey(k *account.APIKey) *ddiAPIKey {
ddiAPIKey := &ddiAPIKey{
ID: k.ID,
Key: k.Key,
LastAccess: k.LastAccess,
Name: k.Name,
TeamIDs: k.TeamIDs,
ID: k.ID,
Key: k.Key,
LastAccess: k.LastAccess,
Name: k.Name,
TeamIDs: k.TeamIDs,
IPWhitelist: k.IPWhitelist,
IPWhitelistStrict: k.IPWhitelistStrict,
Permissions: ddiPermissionsMap{
DNS: k.Permissions.DNS,
Data: k.Permissions.Data,
Expand Down
12 changes: 8 additions & 4 deletions rest/account_apikey_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -49,17 +49,21 @@ func TestCreateDDIAPIKey(t *testing.T) {
assert.NotNil(t, k.Permissions.Security)
assert.NotNil(t, k.Permissions.DHCP)
assert.NotNil(t, k.Permissions.IPAM)
assert.NotNil(t, k.IPWhitelist)
assert.True(t, k.IPWhitelistStrict)

w.Write(b)
}))
defer ts.Close()
c := NewClient(nil, SetEndpoint(ts.URL), SetDDIAPI())

k := &account.APIKey{
ID: "id-1",
Key: "key-1",
Name: "name-1",
Permissions: account.PermissionsMap{},
ID: "id-1",
Key: "key-1",
Name: "name-1",
IPWhitelist: []string{"1.1.1.1"},
IPWhitelistStrict: true,
Permissions: account.PermissionsMap{},
}

_, err := c.APIKeys.Create(k)
Expand Down
5 changes: 3 additions & 2 deletions rest/account_team.go
Original file line number Diff line number Diff line change
Expand Up @@ -167,8 +167,9 @@ var (

func teamToDDITeam(t *account.Team) *ddiTeam {
ddiTeam := &ddiTeam{
ID: t.ID,
Name: t.Name,
ID: t.ID,
Name: t.Name,
IPWhitelist: t.IPWhitelist,
Permissions: ddiPermissionsMap{
DNS: t.Permissions.DNS,
Data: t.Permissions.Data,
Expand Down
8 changes: 6 additions & 2 deletions rest/account_team_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -48,15 +48,19 @@ func TestCreateDDITeam(t *testing.T) {
assert.NotNil(t, tm.Permissions.Security)
assert.NotNil(t, tm.Permissions.DHCP)
assert.NotNil(t, tm.Permissions.IPAM)
assert.NotNil(t, tm.IPWhitelist)

w.Write(b)
}))
defer ts.Close()
c := NewClient(nil, SetEndpoint(ts.URL), SetDDIAPI())

tm := &account.Team{
ID: "id-1",
Name: "team-1",
ID: "id-1",
Name: "team-1",
IPWhitelist: []account.IPWhitelist{
{Name: "whitelist", Values: []string{"1.1.1.1"}},
},
Permissions: account.PermissionsMap{},
}

Expand Down
14 changes: 8 additions & 6 deletions rest/account_user.go
Original file line number Diff line number Diff line change
Expand Up @@ -167,12 +167,14 @@ var (

func userToDDIUser(u *account.User) *ddiUser {
ddiUser := &ddiUser{
LastAccess: u.LastAccess,
Name: u.Name,
Username: u.Username,
Email: u.Email,
TeamIDs: u.TeamIDs,
Notify: u.Notify,
LastAccess: u.LastAccess,
Name: u.Name,
Username: u.Username,
Email: u.Email,
TeamIDs: u.TeamIDs,
Notify: u.Notify,
IPWhitelist: u.IPWhitelist,
IPWhitelistStrict: u.IPWhitelistStrict,
Permissions: ddiPermissionsMap{
DNS: u.Permissions.DNS,
Data: u.Permissions.Data,
Expand Down
12 changes: 8 additions & 4 deletions rest/account_user_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -49,17 +49,21 @@ func TestCreateDDIUser(t *testing.T) {
assert.NotNil(t, u.Permissions.Security)
assert.NotNil(t, u.Permissions.DHCP)
assert.NotNil(t, u.Permissions.IPAM)
assert.NotNil(t, u.IPWhitelist)
assert.True(t, u.IPWhitelistStrict)

w.Write(b)
}))
defer ts.Close()
c := NewClient(nil, SetEndpoint(ts.URL), SetDDIAPI())

u := &account.User{
Name: "name-1",
Username: "user-1",
Email: "email-1",
Permissions: account.PermissionsMap{},
Name: "name-1",
Username: "user-1",
Email: "email-1",
IPWhitelist: []string{"1.1.1.1"},
IPWhitelistStrict: true,
Permissions: account.PermissionsMap{},
}

_, err := c.Users.Create(u)
Expand Down
25 changes: 15 additions & 10 deletions rest/ddi.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,10 @@ import "gopkg.in/ns1/ns1-go.v2/rest/model/account"
// ddiTeam wraps an NS1 /accounts/teams resource for DDI.
// Used for internally mapping between DDI permissions to maintain backwards compatibility.
type ddiTeam struct {
ID string `json:"id,omitempty"`
Name string `json:"name"`
Permissions ddiPermissionsMap `json:"permissions"`
ID string `json:"id,omitempty"`
Name string `json:"name"`
Permissions ddiPermissionsMap `json:"permissions"`
IPWhitelist []account.IPWhitelist `json:"ip_whitelist"`
}

// ddiUser wraps an NS1 /account/users resource for DDI.
Expand All @@ -16,11 +17,13 @@ type ddiUser struct {
// Read-only fields
LastAccess float64 `json:"last_access"`

Name string `json:"name"`
Username string `json:"username"`
Email string `json:"email"`
TeamIDs []string `json:"teams"`
Notify account.NotificationSettings `json:"notify"`
Name string `json:"name"`
Username string `json:"username"`
Email string `json:"email"`
TeamIDs []string `json:"teams"`
Notify account.NotificationSettings `json:"notify"`
IPWhitelist []string `json:"ip_whitelist"`
IPWhitelistStrict bool `json:"ip_whitelist_strict"`

Permissions ddiPermissionsMap `json:"permissions"`
}
Expand All @@ -33,8 +36,10 @@ type ddiAPIKey struct {
Key string `json:"key,omitempty"`
LastAccess int `json:"last_access,omitempty"`

Name string `json:"name"`
TeamIDs []string `json:"teams"`
Name string `json:"name"`
TeamIDs []string `json:"teams"`
IPWhitelist []string `json:"ip_whitelist"`
IPWhitelistStrict bool `json:"ip_whitelist_strict"`

Permissions ddiPermissionsMap `json:"permissions"`
}
Expand Down

0 comments on commit 4139986

Please sign in to comment.