From 213b06d24c3fda1ff85388bee761f4e493b05d91 Mon Sep 17 00:00:00 2001 From: Johan McGwire Date: Tue, 2 Apr 2024 11:55:16 -0400 Subject: [PATCH 1/4] Update User struct --- admin/admin.go | 48 ++++++++++++++++++++++++++++++------------------ 1 file changed, 30 insertions(+), 18 deletions(-) diff --git a/admin/admin.go b/admin/admin.go index ba6ade4..dffc361 100644 --- a/admin/admin.go +++ b/admin/admin.go @@ -37,24 +37,29 @@ func New(base duoapi.DuoApi) *Client { // User models a single user. type User struct { - Alias1 *string `url:"alias1"` - Alias2 *string `url:"alias2"` - Alias3 *string `url:"alias3"` - Alias4 *string `url:"alias4"` - Created uint64 - Email string `url:"email"` - FirstName *string `url:"firstname"` - Groups []Group - LastDirectorySync *uint64 `json:"last_directory_sync"` - LastLogin *uint64 `json:"last_login"` - LastName *string `url:"lastname"` - Notes string `url:"notes"` - Phones []Phone - RealName *string `url:"realname"` - Status string `url:"status"` - Tokens []Token - UserID string `json:"user_id"` - Username string `url:"username"` + Alias1 *string `json:"alias1" url:"alias1"` + Alias2 *string `json:"alias2" url:"alias2"` + Alias3 *string `json:"alias3" url:"alias3"` + Alias4 *string `json:"alias4" url:"alias4"` + Created uint64 `json:"created"` + DesktopTokens []interface{} `json:"desktop_tokens"` + Email string `json:"email" url:"email"` + FirstName *string `json:"firstname" url:"firstname"` + Groups []Group `json:"groups"` + IsEnrolled bool `json:"is_enrolled"` + LastDirectorySync *uint64 `json:"last_directory_sync"` + LastLogin *uint64 `json:"last_login"` + LastName *string `json:"lastname" url:"lastname"` + LockoutReason *string `json:"lockout_reason"` + Notes string `json:"notes" url:"notes"` + Phones []Phone `json:"phones"` + RealName *string `json:"realname" url:"realname"` + Status string `json:"status" url:"status"` + Tokens []Token `json:"tokens"` + U2FToken []U2FToken `json:"u2ftokens"` + UserID string `json:"user_id"` + Username string `json:"username" url:"username"` + WebAuthnToken []WebAuthnToken `json:"webauthncredentials"` } // URLValues transforms a User into url.Values using the 'url' struct tag to @@ -128,6 +133,13 @@ type Token struct { Users []User } +type WebAuthnToken struct { + CredentialName string `json:"credential_name"` + DateAdded int `json:"date_added"` + Label int `json:"label"` + WebauthnKey string `json:"webauthnkey"` +} + // U2FToken models a U2F security token. type U2FToken struct { DateAdded uint64 `json:"date_added"` From 6a95618675331dec8cf8a90b2664c6986da3fb1a Mon Sep 17 00:00:00 2001 From: Johan McGwire Date: Tue, 2 Apr 2024 13:16:11 -0400 Subject: [PATCH 2/4] fix label type --- admin/admin.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/admin/admin.go b/admin/admin.go index dffc361..2256ddc 100644 --- a/admin/admin.go +++ b/admin/admin.go @@ -136,7 +136,7 @@ type Token struct { type WebAuthnToken struct { CredentialName string `json:"credential_name"` DateAdded int `json:"date_added"` - Label int `json:"label"` + Label string `json:"label"` WebauthnKey string `json:"webauthnkey"` } From e1f60ec9bf172852b8118a7425792045e2819e65 Mon Sep 17 00:00:00 2001 From: Johan McGwire Date: Tue, 2 Apr 2024 13:20:04 -0400 Subject: [PATCH 3/4] fix naming --- admin/admin.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/admin/admin.go b/admin/admin.go index 2256ddc..22df300 100644 --- a/admin/admin.go +++ b/admin/admin.go @@ -56,10 +56,10 @@ type User struct { RealName *string `json:"realname" url:"realname"` Status string `json:"status" url:"status"` Tokens []Token `json:"tokens"` - U2FToken []U2FToken `json:"u2ftokens"` + U2FTokens []U2FToken `json:"u2ftokens"` UserID string `json:"user_id"` Username string `json:"username" url:"username"` - WebAuthnToken []WebAuthnToken `json:"webauthncredentials"` + WebAuthnTokens []WebAuthnToken `json:"webauthncredentials"` } // URLValues transforms a User into url.Values using the 'url' struct tag to From 3cc4ea9f5cb506156d08679b38911c57ddd4c11b Mon Sep 17 00:00:00 2001 From: Johan McGwire Date: Fri, 5 Apr 2024 10:42:13 -0400 Subject: [PATCH 4/4] Address comments --- admin/admin.go | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/admin/admin.go b/admin/admin.go index 22df300..7815148 100644 --- a/admin/admin.go +++ b/admin/admin.go @@ -42,7 +42,6 @@ type User struct { Alias3 *string `json:"alias3" url:"alias3"` Alias4 *string `json:"alias4" url:"alias4"` Created uint64 `json:"created"` - DesktopTokens []interface{} `json:"desktop_tokens"` Email string `json:"email" url:"email"` FirstName *string `json:"firstname" url:"firstname"` Groups []Group `json:"groups"` @@ -135,9 +134,9 @@ type Token struct { type WebAuthnToken struct { CredentialName string `json:"credential_name"` - DateAdded int `json:"date_added"` + DateAdded uint64 `json:"date_added"` Label string `json:"label"` - WebauthnKey string `json:"webauthnkey"` + WebAuthnKey string `json:"webauthnkey"` } // U2FToken models a U2F security token.