Skip to content

Commit b2991c0

Browse files
authored
Merge pull request #769 from neilmartin83/nm-ldapservers-2025-04-28
fix: Add missing fields to ldapservers and existing field mappings/data type corrections
2 parents 3f98119 + 755dc3c commit b2991c0

File tree

4 files changed

+37
-27
lines changed

4 files changed

+37
-27
lines changed

examples/ldap_servers/CreateLDAPServer/CreateLDAPServer.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ func main() {
5050
MapDepartment: "department",
5151
MapBuilding: "streetAddress",
5252
MapRoom: "room",
53-
MapTelephone: "telephoneNumber",
53+
MapPhone: "telephoneNumber",
5454
MapPosition: "title",
5555
MapUserUUID: "objectGUID",
5656
// Additional fields if necessary...
@@ -71,7 +71,7 @@ func main() {
7171
AppendToUsername: "company.com",
7272
UseDN: true,
7373
RecursiveLookups: true,
74-
MapUserMembershipToGroupField: true,
74+
MapUserMembershipToGroupField: "member",
7575
MapUserMembershipUseDN: true,
7676
MapObjectClassToAnyOrAll: "all",
7777
ObjectClasses: "group",

examples/ldap_servers/UpdateLDAPServerByID/UpdateLDAPServerByID.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ func main() {
5151
MapDepartment: "department",
5252
MapBuilding: "streetAddress",
5353
MapRoom: "room",
54-
MapTelephone: "telephoneNumber",
54+
MapPhone: "telephoneNumber",
5555
MapPosition: "title",
5656
MapUserUUID: "objectGUID",
5757
// Additional fields if necessary...
@@ -72,7 +72,7 @@ func main() {
7272
AppendToUsername: "company.com",
7373
UseDN: true,
7474
RecursiveLookups: true,
75-
MapUserMembershipToGroupField: true,
75+
MapUserMembershipToGroupField: "member",
7676
MapUserMembershipUseDN: true,
7777
MapObjectClassToAnyOrAll: "all",
7878
ObjectClasses: "group",

examples/ldap_servers/UpdateLDAPServerByName/UpdateLDAPServerByName.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ func main() {
5151
MapDepartment: "department",
5252
MapBuilding: "streetAddress",
5353
MapRoom: "room",
54-
MapTelephone: "telephoneNumber",
54+
MapPhone: "telephoneNumber",
5555
MapPosition: "title",
5656
MapUserUUID: "objectGUID",
5757
// Additional fields if necessary...
@@ -72,7 +72,7 @@ func main() {
7272
AppendToUsername: "company.com",
7373
UseDN: true,
7474
RecursiveLookups: true,
75-
MapUserMembershipToGroupField: true,
75+
MapUserMembershipToGroupField: "member",
7676
MapUserMembershipUseDN: true,
7777
MapObjectClassToAnyOrAll: "all",
7878
ObjectClasses: "group",

sdk/jamfpro/classicapi_ldap_servers.go

Lines changed: 31 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ type LDAPServerSubsetMappingUsers struct {
7979
MapDepartment string `xml:"map_department"`
8080
MapBuilding string `xml:"map_building"`
8181
MapRoom string `xml:"map_room"`
82-
MapTelephone string `xml:"map_telephone"`
82+
MapPhone string `xml:"map_phone"`
8383
MapPosition string `xml:"map_position"`
8484
MapUserUUID string `xml:"map_user_uuid"`
8585
}
@@ -95,21 +95,22 @@ type LDAPServerSubsetMappingUserGroups struct {
9595
}
9696

9797
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"`
113114
}
114115

115116
// CRUD
@@ -268,7 +269,7 @@ func (c *Client) GetLDAPServerByNameAndUserMembershipInGroupDataSubset(name, gro
268269
}
269270

270271
// 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) {
272273
endpoint := fmt.Sprintf("%s/id/0", uriLDAPServers)
273274

274275
requestBody := struct {
@@ -278,17 +279,26 @@ func (c *Client) CreateLDAPServer(ldapServer *ResourceLDAPServers) (*ResourceLDA
278279
ResourceLDAPServers: ldapServer,
279280
}
280281

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)
283287
if err != nil {
284288
return nil, fmt.Errorf(errMsgFailedCreate, "ldap server", err)
285289
}
286-
287290
if resp != nil && resp.Body != nil {
288291
defer resp.Body.Close()
289292
}
290293

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
292302
}
293303

294304
// UpdateLDAPServerByID updates an existing LDAP server identified by its ID.

0 commit comments

Comments
 (0)