ruby-jss 1.2.10 → 1.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of ruby-jss might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/CHANGES.md +92 -1
- data/lib/jamf/api/abstract_classes/json_object.rb +1 -1
- data/lib/jamf/api/abstract_classes/prestage.rb +1 -1
- data/lib/jamf/api/connection.rb +7 -3
- data/lib/jamf/configuration.rb +7 -9
- data/lib/jamf/ruby_extensions.rb +1 -0
- data/lib/jamf/ruby_extensions/array.rb +1 -1
- data/lib/jamf/ruby_extensions/array/utils.rb +3 -3
- data/lib/jamf/ruby_extensions/dig.rb +52 -0
- data/lib/jss.rb +2 -0
- data/lib/jss/api_connection.rb +2 -29
- data/lib/jss/api_object.rb +15 -2
- data/lib/jss/api_object/directory_binding.rb +273 -0
- data/lib/jss/api_object/directory_binding_type.rb +90 -0
- data/lib/jss/api_object/directory_binding_type/active_directory.rb +502 -0
- data/lib/jss/api_object/directory_binding_type/admitmac.rb +525 -0
- data/lib/jss/api_object/directory_binding_type/centrify.rb +212 -0
- data/lib/jss/api_object/directory_binding_type/open_directory.rb +178 -0
- data/lib/jss/api_object/directory_binding_type/powerbroker_identity_services.rb +73 -0
- data/lib/jss/api_object/disk_encryption_configurations.rb +114 -0
- data/lib/jss/api_object/distribution_point.rb +95 -35
- data/lib/jss/api_object/dock_item.rb +137 -0
- data/lib/jss/api_object/mobile_device_application.rb +12 -0
- data/lib/jss/api_object/network_segment.rb +152 -58
- data/lib/jss/api_object/package.rb +106 -41
- data/lib/jss/api_object/policy.rb +379 -4
- data/lib/jss/api_object/printer.rb +440 -0
- data/lib/jss/api_object/scopable/scope.rb +24 -24
- data/lib/jss/composer.rb +1 -1
- data/lib/jss/utility.rb +8 -22
- data/lib/jss/version.rb +1 -1
- metadata +13 -2
@@ -0,0 +1,525 @@
|
|
1
|
+
### Copyright 2019 Rixar
|
2
|
+
|
3
|
+
###
|
4
|
+
### Licensed under the Apache License, Version 2.0 (the "Apache License")
|
5
|
+
### with the following modification; you may not use this file except in
|
6
|
+
### compliance with the Apache License and the following modification to it:
|
7
|
+
### Section 6. Trademarks. is deleted and replaced with:
|
8
|
+
###
|
9
|
+
### 6. Trademarks. This License does not grant permission to use the trade
|
10
|
+
### names, trademarks, service marks, or product names of the Licensor
|
11
|
+
### and its affiliates, except as required to comply with Section 4(c) of
|
12
|
+
### the License and to reproduce the content of the NOTICE file.
|
13
|
+
###
|
14
|
+
### You may obtain a copy of the Apache License at
|
15
|
+
###
|
16
|
+
### http://www.apache.org/licenses/LICENSE-2.0
|
17
|
+
###
|
18
|
+
### Unless required by applicable law or agreed to in writing, software
|
19
|
+
### distributed under the Apache License with the above modification is
|
20
|
+
### distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
21
|
+
### KIND, either express or implied. See the Apache License for the specific
|
22
|
+
### language governing permissions and limitations under the Apache License.
|
23
|
+
###
|
24
|
+
###
|
25
|
+
|
26
|
+
module JSS
|
27
|
+
|
28
|
+
# Module for containing the different types of DirectoryBindings stored within the JSS
|
29
|
+
|
30
|
+
module DirectoryBindingType
|
31
|
+
|
32
|
+
# Module Variables
|
33
|
+
#####################################
|
34
|
+
|
35
|
+
# Module Methods
|
36
|
+
#####################################
|
37
|
+
|
38
|
+
# Classes
|
39
|
+
#####################################
|
40
|
+
|
41
|
+
# Class for the specific ADmitMac DirectoryBinding type stored within the JSS
|
42
|
+
#
|
43
|
+
# @author Tyler Morgan
|
44
|
+
#
|
45
|
+
# @note "Map Home Directory To Attribute" is currently only available in the Jamf Pro UI not through the API.
|
46
|
+
#
|
47
|
+
# Attributes
|
48
|
+
# @!attribute [rw] require_confirmation
|
49
|
+
# @!attribute [rw] local_home
|
50
|
+
# @!attribute [rw] mount_style
|
51
|
+
# @!attribute [rw] default_shell
|
52
|
+
# @!attribute [rw] mount_network_home
|
53
|
+
# @!attribute [rw] place_home_folders
|
54
|
+
# @!attribute [rw] uid
|
55
|
+
# @!attribute [rw] user_gid
|
56
|
+
# @!attribute [rw] gid
|
57
|
+
# @!attribute [rw] admin_group
|
58
|
+
# @!attribute [rw] cached_credentials
|
59
|
+
# @!attribute [rw] add_user_to_local
|
60
|
+
# @!attribute [rw] users_ou
|
61
|
+
# @!attribute [rw] groups_ou
|
62
|
+
# @!attribute [rw] printers_ou
|
63
|
+
# @!attribute [rw] shared_folders_ou
|
64
|
+
# TODO: Include default values upon creation
|
65
|
+
|
66
|
+
class ADmitMac < DirectoryBindingType
|
67
|
+
# Mix-Ins
|
68
|
+
#####################################
|
69
|
+
|
70
|
+
# Class Methods
|
71
|
+
#####################################
|
72
|
+
|
73
|
+
# Class Constants
|
74
|
+
#####################################
|
75
|
+
|
76
|
+
# Attributes
|
77
|
+
#####################################
|
78
|
+
|
79
|
+
attr_reader :require_confirmation
|
80
|
+
attr_reader :local_home
|
81
|
+
attr_reader :mount_style
|
82
|
+
attr_reader :default_shell
|
83
|
+
attr_reader :mount_network_home
|
84
|
+
attr_reader :place_home_folders
|
85
|
+
attr_reader :uid
|
86
|
+
attr_reader :user_gid
|
87
|
+
attr_reader :gid
|
88
|
+
attr_reader :admin_group
|
89
|
+
attr_reader :cached_credentials
|
90
|
+
attr_reader :add_user_to_local
|
91
|
+
attr_reader :users_ou
|
92
|
+
attr_reader :groups_ou
|
93
|
+
attr_reader :printers_ou
|
94
|
+
attr_reader :shared_folders_ou
|
95
|
+
|
96
|
+
# Constructor
|
97
|
+
#####################################
|
98
|
+
|
99
|
+
# An initializer for the ADmitMac object.
|
100
|
+
#
|
101
|
+
# @author Tyler Morgan
|
102
|
+
# @see JSS::DirectoryBinding
|
103
|
+
# @see JSS::DirectoryBindingType
|
104
|
+
#
|
105
|
+
# @note Due to a JSS API funk, mount_style is not able to be configured through the API. It is linked to place_home_folders
|
106
|
+
#
|
107
|
+
# @param [Hash] initialize data
|
108
|
+
def initialize(init_data)
|
109
|
+
|
110
|
+
# Return without processing anything since there is
|
111
|
+
# nothing to process.
|
112
|
+
return if init_data.nil?
|
113
|
+
|
114
|
+
# Process the provided information
|
115
|
+
@require_confirmation = init_data[:require_confirmation]
|
116
|
+
@default_shell = init_data[:default_shell]
|
117
|
+
@mount_network_home = init_data[:mount_network_home]
|
118
|
+
@place_home_folders = init_data[:place_home_folders]
|
119
|
+
@uid = init_data[:uid]
|
120
|
+
@user_gid = init_data[:user_gid]
|
121
|
+
@gid = init_data[:gid]
|
122
|
+
@cached_credentials = init_data[:cached_credentials]
|
123
|
+
@add_user_to_local = init_data[:add_user_to_local]
|
124
|
+
@users_ou = init_data[:users_ou]
|
125
|
+
@groups_ou = init_data[:groups_ou]
|
126
|
+
@printers_ou = init_data[:printers_ou]
|
127
|
+
@shared_folders_ou = init_data[:shared_folders_ou]
|
128
|
+
@mount_style = init_data[:mount_style]
|
129
|
+
|
130
|
+
if init_data[:local_home].nil? || init_data[:local_home].is_a?(String)
|
131
|
+
raise JSS::InvalidDataError, "Local Home must be one of #{HOME_FOLDER_TYPE.values.join(', ')}." unless HOME_FOLDER_TYPE.values.include? init_data[:local_home] || init_data[:local_home].nil?
|
132
|
+
|
133
|
+
@local_home = init_data[:local_home]
|
134
|
+
else
|
135
|
+
raise JSS::InvalidDataError, "Local Home must be one of :#{HOME_FOLDER_TYPE.keys.join(',:')}." unless HOME_FOLDER_TYPE.keys.include? init_data[:local_home]
|
136
|
+
end
|
137
|
+
|
138
|
+
if init_data[:admin_group].nil?
|
139
|
+
# This is needed since we have the ability to add and
|
140
|
+
# remove admin groups from this array.
|
141
|
+
@admin_group = []
|
142
|
+
elsif init_data[:admin_group].is_a? String
|
143
|
+
@admin_group = init_data[:admin_group].split(',')
|
144
|
+
else
|
145
|
+
@admin_group = init_data[:admin_group]
|
146
|
+
end
|
147
|
+
end
|
148
|
+
|
149
|
+
|
150
|
+
|
151
|
+
# Public Instance Methods
|
152
|
+
#####################################
|
153
|
+
|
154
|
+
# Require confirmation before creating a mobile account on the system.
|
155
|
+
#
|
156
|
+
# @author Tyler Morgan
|
157
|
+
#
|
158
|
+
# @param newvalue [Bool]
|
159
|
+
#
|
160
|
+
# @raise [JSS::InvalidDataError] If the new value doesn't match a Bool value
|
161
|
+
#
|
162
|
+
# @return [void]
|
163
|
+
def require_confirmation=(newvalue)
|
164
|
+
|
165
|
+
raise JSS::InvalidDataError, "require_confirmation must be true or false." unless newvalue.is_a? Bool
|
166
|
+
|
167
|
+
@require_confirmation = newvalue
|
168
|
+
|
169
|
+
self.container&.should_update
|
170
|
+
end
|
171
|
+
|
172
|
+
|
173
|
+
# The type of home directory type created upon logging into a system
|
174
|
+
#
|
175
|
+
# @author Tyler Morgan
|
176
|
+
#
|
177
|
+
# @param newvalue [Symbol] The key specific to the folder type you want in HOME_FOLDER_TYPE
|
178
|
+
# @see JSS::DirectoryBindingType::HOME_FOLDER_TYPE
|
179
|
+
#
|
180
|
+
# @raise [JSS::InvalidDataError] If the new value is not one of the possible keys in HOME_FOLDER_TYPE
|
181
|
+
#
|
182
|
+
# @return [void]
|
183
|
+
def local_home=(newvalue)
|
184
|
+
|
185
|
+
raise JSS::InvalidDataError, "local_home must be one of :#{HOME_FOLDER_TYPE.keys.join(',:')}." unless HOME_FOLDER_TYPE.keys.include? newvalue
|
186
|
+
|
187
|
+
@local_home = HOME_FOLDER_TYPE[newvalue]
|
188
|
+
|
189
|
+
self.container&.should_update
|
190
|
+
end
|
191
|
+
|
192
|
+
# The default shell assigned first upon logging into a system
|
193
|
+
#
|
194
|
+
# @author Tyler Morgan
|
195
|
+
#
|
196
|
+
# @param newvalue [String] The string path of the shell file being set as the default
|
197
|
+
#
|
198
|
+
# @raise [JSS::InvalidDataError] If the new value is not a String
|
199
|
+
#
|
200
|
+
# @return [void]
|
201
|
+
def default_shell=(newvalue)
|
202
|
+
|
203
|
+
raise JSS::InvalidDataError, "default_shell must be empty or a string." unless newvalue.is_a?(String)
|
204
|
+
|
205
|
+
@default_shell = newvalue
|
206
|
+
|
207
|
+
self.container&.should_update
|
208
|
+
end
|
209
|
+
|
210
|
+
|
211
|
+
# Mount network home folder on desktop
|
212
|
+
#
|
213
|
+
# @author Tyler Morgan
|
214
|
+
#
|
215
|
+
# @param newvalue [Bool]
|
216
|
+
#
|
217
|
+
# @raise [JSS::InvalidDataError] If the new value is not a Bool
|
218
|
+
#
|
219
|
+
# @return [void]
|
220
|
+
def mount_network_home=(newvalue)
|
221
|
+
|
222
|
+
raise JSS::InvalidDataError, "mount_network_home must be true or false." unless newvalue.is_a? Bool
|
223
|
+
|
224
|
+
@mount_network_home = newvalue
|
225
|
+
|
226
|
+
self.container&.should_update
|
227
|
+
end
|
228
|
+
|
229
|
+
# Path at which home folders are placed
|
230
|
+
#
|
231
|
+
# @author Tyler Morgan
|
232
|
+
#
|
233
|
+
# @param newvalue [String] The string path of the folder which user's directory files and folders will be created
|
234
|
+
#
|
235
|
+
# @raise [JSS::InvalidDataError] If the new value is not a String
|
236
|
+
#
|
237
|
+
# @return [void]
|
238
|
+
def place_home_folders=(newvalue)
|
239
|
+
|
240
|
+
raise JSS::InvalidDataError, "place_home_folders must be a string." unless newvalue.is_a? String
|
241
|
+
|
242
|
+
@place_home_folders = newvalue
|
243
|
+
|
244
|
+
self.container&.should_update
|
245
|
+
end
|
246
|
+
|
247
|
+
# Jamf has these linked for some reason...
|
248
|
+
alias mount_style place_home_folders
|
249
|
+
|
250
|
+
|
251
|
+
# Map specific UID to Attribute
|
252
|
+
#
|
253
|
+
# @author Tyler Morgan
|
254
|
+
#
|
255
|
+
# @param newvalue [String] The UID you want to be mapped
|
256
|
+
#
|
257
|
+
# @raise [JSS::InvalidDataError] If the new value is not a String
|
258
|
+
#
|
259
|
+
# @return [void]
|
260
|
+
def uid=(newvalue)
|
261
|
+
|
262
|
+
raise JSS::InvalidDataError, "uid must be a string, integer, or nil." unless newvalue.is_a?(String) || newvalue.is_a?(Integer) || newvalue.nil?
|
263
|
+
|
264
|
+
@uid = newvalue
|
265
|
+
|
266
|
+
self.container&.should_update
|
267
|
+
end
|
268
|
+
|
269
|
+
|
270
|
+
# Map specific a User's GID to Attribute
|
271
|
+
#
|
272
|
+
# @author Tyler Morgan
|
273
|
+
#
|
274
|
+
# @param newvalue [String] The User's GID you want to be mapped
|
275
|
+
#
|
276
|
+
# @raise [JSS::InvalidDataError] If the new value is not a String
|
277
|
+
#
|
278
|
+
# @return [void]
|
279
|
+
def user_gid=(newvalue)
|
280
|
+
|
281
|
+
raise JSS::InvalidDataError, "user_gid must be a string, integer, or nil." unless newvalue.is_a?(String) || newvalue.is_a?(Integer) || newvalue.nil?
|
282
|
+
|
283
|
+
@user_gid = newvalue
|
284
|
+
|
285
|
+
self.container&.should_update
|
286
|
+
end
|
287
|
+
|
288
|
+
|
289
|
+
# Map specific GID to Attribute
|
290
|
+
#
|
291
|
+
# @author Tyler Morgan
|
292
|
+
#
|
293
|
+
# @param newvalue [String] The GID you want to be mapped
|
294
|
+
#
|
295
|
+
# @raise [JSS::InvalidDataError] If the new value is not a String
|
296
|
+
#
|
297
|
+
# @return [void]
|
298
|
+
def gid=(newvalue)
|
299
|
+
|
300
|
+
raise JSS::InvalidDataError, "gid must be a string, integer, or nil." unless newvalue.is_a?(String) || newvalue.is_a?(Integer) || newvalue.nil?
|
301
|
+
|
302
|
+
@gid = newvalue
|
303
|
+
|
304
|
+
self.container&.should_update
|
305
|
+
end
|
306
|
+
|
307
|
+
# Set specific groups to become administrators to a system.
|
308
|
+
#
|
309
|
+
# @author Tyler Morgan
|
310
|
+
#
|
311
|
+
# @param newvalue [Array<String>] An array of all the admin group names you want to set.
|
312
|
+
# @see add_admin_group
|
313
|
+
# @see remove_admin_group
|
314
|
+
#
|
315
|
+
# @raise [JSS::InvalidDataError] If the new value is not an Array
|
316
|
+
#
|
317
|
+
# @return [void]
|
318
|
+
def admin_group=(newvalue)
|
319
|
+
|
320
|
+
raise JSS::InvalidDataError, "An Array must be provided, please use add_admin_group and remove_admin_group for individual group additions and removals." unless newvalue.is_a? Array
|
321
|
+
|
322
|
+
@admin_group = newvalue
|
323
|
+
|
324
|
+
self.container&.should_update
|
325
|
+
end
|
326
|
+
|
327
|
+
|
328
|
+
# The number of times a user can log into the device while not connected to a network
|
329
|
+
#
|
330
|
+
# @author Tyler Morgan
|
331
|
+
#
|
332
|
+
# @param newvalue [Integer] The number of times you want a user to login while not connected to a network
|
333
|
+
#
|
334
|
+
# @raise [JSS::InvalidDataError] If the new value is not an Integer
|
335
|
+
#
|
336
|
+
# @return [void]
|
337
|
+
def cached_credentials=(newvalue)
|
338
|
+
|
339
|
+
raise JSS::InvalidDataError, "cached_credentials must be an integer." unless newvalue.is_a? Integer
|
340
|
+
|
341
|
+
@cached_credentials = newvalue
|
342
|
+
|
343
|
+
self.container&.should_update
|
344
|
+
end
|
345
|
+
|
346
|
+
|
347
|
+
# If the user is a member of one of the groups in admin_group, add them
|
348
|
+
# to the local administrator group.
|
349
|
+
#
|
350
|
+
# @author Tyler Morgan
|
351
|
+
# @see admin_group
|
352
|
+
#
|
353
|
+
# @param newvalue [Bool]
|
354
|
+
#
|
355
|
+
# @raise [JSS::InvalidDataError] If the new value is not a Bool
|
356
|
+
#
|
357
|
+
# @return [void]
|
358
|
+
def add_user_to_local=(newvalue)
|
359
|
+
|
360
|
+
raise JSS::InvalidDataError, "add_user_to_local must be true or false." unless newvalue.is_a? Bool
|
361
|
+
|
362
|
+
@add_user_to_local = newvalue
|
363
|
+
|
364
|
+
self.container&.should_update
|
365
|
+
end
|
366
|
+
|
367
|
+
|
368
|
+
# An OU path for specific Users
|
369
|
+
#
|
370
|
+
# @author Tyler Morgan
|
371
|
+
#
|
372
|
+
# @param newvalue [String] The OU path for the specific user
|
373
|
+
# @note Not sure what this is used for
|
374
|
+
#
|
375
|
+
# @raise [JSS::InvalidDataError] If the new value is not a String
|
376
|
+
#
|
377
|
+
# @return [void]
|
378
|
+
def users_ou=(newvalue)
|
379
|
+
|
380
|
+
raise JSS::InvalidDataError, "users_ou must be either a string or nil." unless newvalue.is_a? String || newvalue.nil?
|
381
|
+
|
382
|
+
@users_ou = newvalue
|
383
|
+
|
384
|
+
self.container&.should_update
|
385
|
+
end
|
386
|
+
|
387
|
+
|
388
|
+
# An OU path for specific User Groups
|
389
|
+
#
|
390
|
+
# @author Tyler Morgan
|
391
|
+
#
|
392
|
+
# @param newvalue [String] The OU path for the specific user group
|
393
|
+
# @note Not sure what this is used for
|
394
|
+
#
|
395
|
+
# @raise [JSS::InvalidDataError] If the new value is not a String
|
396
|
+
#
|
397
|
+
# @return [void]
|
398
|
+
def groups_ou=(newvalue)
|
399
|
+
|
400
|
+
raise JSS::InvalidDataError, "groups_ou must be either a string or nil." unless newvalue.is_a? String || newvalue.nil?
|
401
|
+
|
402
|
+
@groups_ou = newvalue
|
403
|
+
|
404
|
+
self.container&.should_update
|
405
|
+
end
|
406
|
+
|
407
|
+
|
408
|
+
# An OU path for specific Printers
|
409
|
+
#
|
410
|
+
# @author Tyler Morgan
|
411
|
+
#
|
412
|
+
# @param newvalue [String] The OU path for the specific printer
|
413
|
+
# @note Not sure what this is used for
|
414
|
+
#
|
415
|
+
# @raise [JSS::InvalidDataError] If the new value is not a String
|
416
|
+
#
|
417
|
+
# @return [void]
|
418
|
+
def printers_ou=(newvalue)
|
419
|
+
|
420
|
+
raise JSS::InvalidDataError, "printers_ou must be either a string or nil." unless newvalue.is_a? String || newvalue.nil?
|
421
|
+
|
422
|
+
@printers_ou = newvalue
|
423
|
+
|
424
|
+
self.container&.should_update
|
425
|
+
end
|
426
|
+
|
427
|
+
|
428
|
+
# An OU path for specific shared folders
|
429
|
+
#
|
430
|
+
# @author Tyler Morgan
|
431
|
+
#
|
432
|
+
# @param newvalue [String] The OU path for the specific shared folders
|
433
|
+
# @note Not sure what this is used for
|
434
|
+
#
|
435
|
+
# @raise [JSS::InvalidDataError] If the new value is not a String
|
436
|
+
#
|
437
|
+
# @return [void]
|
438
|
+
def shared_folders_ou=(newvalue)
|
439
|
+
|
440
|
+
raise JSS::InvalidDataError, "shared_folders_ou must be either a string or nil." unless newvalue.is_a? String || newvalue.nil?
|
441
|
+
|
442
|
+
@shared_folders_ou = newvalue
|
443
|
+
|
444
|
+
self.container&.should_update
|
445
|
+
end
|
446
|
+
|
447
|
+
|
448
|
+
# An a specific admin group to admin_group
|
449
|
+
#
|
450
|
+
# @author Tyler Morgan
|
451
|
+
#
|
452
|
+
# @param value [String] The admin group name you wish to add to the admin group list
|
453
|
+
#
|
454
|
+
# @raise [JSS::InvalidDataError] If the value provided is not a String
|
455
|
+
# @raise [JSS::InvalidDataError] If the group provided is already a member of the admin_group array
|
456
|
+
#
|
457
|
+
# @return [Array <String>] An array of all the admin groups currently set.
|
458
|
+
def add_admin_group(value)
|
459
|
+
|
460
|
+
raise JSS::InvalidDataError, "Admin group must be a string." unless value.is_a? String
|
461
|
+
raise JSS::InvalidDataError, "Admin group \"#{value}\" already is in the list of admin groups." unless !@admin_group.include? value
|
462
|
+
|
463
|
+
@admin_group << value
|
464
|
+
|
465
|
+
self.container&.should_update
|
466
|
+
|
467
|
+
return @admin_group
|
468
|
+
end
|
469
|
+
|
470
|
+
|
471
|
+
# Remove a specific admin group to admin_group
|
472
|
+
#
|
473
|
+
# @author Tyler Morgan
|
474
|
+
#
|
475
|
+
# @param newvalue [String] The admin group name you wish to remove from the admin group list
|
476
|
+
#
|
477
|
+
# @raise [JSS::InvalidDataError] If the value provided is not a String
|
478
|
+
# @raise [JSS::InvalidDataError] If the group provided is not in the admin_group array
|
479
|
+
#
|
480
|
+
# @return [Array <String>] An array of all the admin groups currently set.
|
481
|
+
def remove_admin_group(value)
|
482
|
+
|
483
|
+
raise JSS::InvalidDataError, "Admin group being removed must be a string" unless value.is_a? String
|
484
|
+
raise JSS::InvalidDataError, "Admin group #{value} is not in the current admin group(s)." unless @admin_group.include? value
|
485
|
+
|
486
|
+
@admin_group.delete value
|
487
|
+
|
488
|
+
self.container&.should_update
|
489
|
+
|
490
|
+
return @admin_group
|
491
|
+
end
|
492
|
+
|
493
|
+
|
494
|
+
# Return a REXML Element containing the current state of the DirectoryBindingType
|
495
|
+
# object for adding into the XML of the container.
|
496
|
+
#
|
497
|
+
# @author Tyler Morgan
|
498
|
+
#
|
499
|
+
# @return [REXML::Element]
|
500
|
+
def type_setting_xml
|
501
|
+
type_setting = REXML::Element.new "admitmac"
|
502
|
+
type_setting.add_element("require_confirmation").text = @require_confirmation
|
503
|
+
type_setting.add_element("local_home").text = @local_home
|
504
|
+
type_setting.add_element("mount_style").text = @mount_style.downcase
|
505
|
+
type_setting.add_element("default_shell").text = @default_shell
|
506
|
+
type_setting.add_element("mount_network_home").text = @mount_network_home
|
507
|
+
type_setting.add_element("place_home_folders").text = @place_home_folders
|
508
|
+
type_setting.add_element("uid").text = @uid
|
509
|
+
type_setting.add_element("user_gid").text = @user_gid
|
510
|
+
type_setting.add_element("gid").text = @gid
|
511
|
+
type_setting.add_element("add_user_to_local").text = @add_user_to_local
|
512
|
+
type_setting.add_element("cached_credentials").text = @cached_credentials
|
513
|
+
type_setting.add_element("users_ou").text = @users_ou
|
514
|
+
type_setting.add_element("groups_ou").text = @groups_ou
|
515
|
+
type_setting.add_element("printers_ou").text = @printers_ou
|
516
|
+
type_setting.add_element("shared_folders_ou").text = @shared_folders_ou
|
517
|
+
type_setting.add_element("admin_group").text = @admin_group.join(',').to_s unless @admin_group.nil?
|
518
|
+
|
519
|
+
return type_setting
|
520
|
+
end
|
521
|
+
end
|
522
|
+
|
523
|
+
end
|
524
|
+
|
525
|
+
end
|