@@ -79,7 +79,7 @@ type LDAPServerSubsetMappingUsers struct {
79
79
MapDepartment string `xml:"map_department"`
80
80
MapBuilding string `xml:"map_building"`
81
81
MapRoom string `xml:"map_room"`
82
- MapTelephone string `xml:"map_telephone "`
82
+ MapPhone string `xml:"map_phone "`
83
83
MapPosition string `xml:"map_position"`
84
84
MapUserUUID string `xml:"map_user_uuid"`
85
85
}
@@ -95,21 +95,22 @@ type LDAPServerSubsetMappingUserGroups struct {
95
95
}
96
96
97
97
type LDAPServerSubsetMappingUserGroupMemberships struct {
98
- UserGroupMembershipStoredIn string `xml:"user_group_membership_stored_in"`
99
- MapGroupMembershipToUserField string `xml:"map_group_membership_to_user_field"`
100
- AppendToUsername string `xml:"append_to_username"`
101
- UseDN bool `xml:"use_dn"`
102
- RecursiveLookups bool `xml:"recursive_lookups"`
103
- MapUserMembershipToGroupField bool `xml:"map_user_membership_to_group_field"`
104
- MapUserMembershipUseDN bool `xml:"map_user_membership_use_dn"`
105
- MapObjectClassToAnyOrAll string `xml:"map_object_class_to_any_or_all"`
106
- ObjectClasses string `xml:"object_classes"`
107
- SearchBase string `xml:"search_base"`
108
- SearchScope string `xml:"search_scope"`
109
- Username string `xml:"username"`
110
- GroupID string `xml:"group_id"`
111
- UserGroupMembershipUseLDAPCompare bool `xml:"user_group_membership_use_ldap_compare"`
112
- MembershipScopingOptimization bool `xml:"membership_scoping_optimization"`
98
+ UserGroupMembershipStoredIn string `xml:"user_group_membership_stored_in"`
99
+ MapGroupMembershipToUserField string `xml:"map_group_membership_to_user_field"`
100
+ AppendToUsername string `xml:"append_to_username"`
101
+ UseDN bool `xml:"use_dn"`
102
+ RecursiveLookups bool `xml:"recursive_lookups"`
103
+ GroupMembershipEnabledWhenUserMembershipSelected bool `xml:"group_membership_enabled_when_user_membership_selected"`
104
+ MapUserMembershipToGroupField string `xml:"map_user_membership_to_group_field"`
105
+ MapUserMembershipUseDN bool `xml:"map_user_membership_use_dn"`
106
+ MapObjectClassToAnyOrAll string `xml:"map_object_class_to_any_or_all"`
107
+ ObjectClasses string `xml:"object_classes"`
108
+ SearchBase string `xml:"search_base"`
109
+ SearchScope string `xml:"search_scope"`
110
+ Username string `xml:"username"`
111
+ GroupID string `xml:"group_id"`
112
+ UserGroupMembershipUseLDAPCompare bool `xml:"user_group_membership_use_ldap_compare"`
113
+ MembershipScopingOptimization bool `xml:"membership_scoping_optimization"`
113
114
}
114
115
115
116
// CRUD
@@ -268,7 +269,7 @@ func (c *Client) GetLDAPServerByNameAndUserMembershipInGroupDataSubset(name, gro
268
269
}
269
270
270
271
// CreateLDAPServer creates a new LDAP server in Jamf Pro.
271
- func (c * Client ) CreateLDAPServer (ldapServer * ResourceLDAPServers ) (* ResourceLDAPServers , error ) {
272
+ func (c * Client ) CreateLDAPServer (ldapServer * ResourceLDAPServers ) (* LDAPServersListItem , error ) {
272
273
endpoint := fmt .Sprintf ("%s/id/0" , uriLDAPServers )
273
274
274
275
requestBody := struct {
@@ -278,17 +279,26 @@ func (c *Client) CreateLDAPServer(ldapServer *ResourceLDAPServers) (*ResourceLDA
278
279
ResourceLDAPServers : ldapServer ,
279
280
}
280
281
281
- var responseLDAPServer ResourceLDAPServers
282
- resp , err := c .HTTP .DoRequest ("POST" , endpoint , & requestBody , & responseLDAPServer )
282
+ var createResp struct {
283
+ ID int `xml:"id"`
284
+ }
285
+
286
+ resp , err := c .HTTP .DoRequest ("POST" , endpoint , & requestBody , & createResp )
283
287
if err != nil {
284
288
return nil , fmt .Errorf (errMsgFailedCreate , "ldap server" , err )
285
289
}
286
-
287
290
if resp != nil && resp .Body != nil {
288
291
defer resp .Body .Close ()
289
292
}
290
293
291
- return & responseLDAPServer , nil
294
+ if createResp .ID == 0 {
295
+ return nil , fmt .Errorf ("no ID found in LDAP server creation response" )
296
+ }
297
+
298
+ return & LDAPServersListItem {
299
+ ID : createResp .ID ,
300
+ Name : ldapServer .Connection .Name ,
301
+ }, nil
292
302
}
293
303
294
304
// UpdateLDAPServerByID updates an existing LDAP server identified by its ID.
0 commit comments