Module: OpenDirectoryUtils::CommandsUserAttribs

Includes:
CleanCheck, CommandsBase
Included in:
Connection
Defined in:
lib/open_directory_utils/commands_user_attribs.rb

Overview

Instance Method Summary collapse

Methods included from CommandsBase

#build_dscl_command, #build_dseditgroup_command, #build_pwpolicy_command, #dscl, #dseditgroup, #pwpolicy

Methods included from CleanCheck

#assert, #check_critical_attribute, #group_record_name_alternatives, #tidy_attribs, #user_record_name_alternatives

Instance Method Details

#user_append_chat(attribs, dir_info) ⇒ Object

first - /usr/bin/dscl -u diradmin -P A-B1g-S3cret /LDAPv3/127.0.0.1 -create /Users/$USER apple-imhandle “$VALUE” /usr/bin/dscl -u diradmin -P A-B1g-S3cret /LDAPv3/127.0.0.1 -create /Users/$USER apple-imhandle “AIM:created: $CREATE”



58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
# File 'lib/open_directory_utils/commands_user_attribs.rb', line 58

def user_append_chat(attribs, dir_info)
  attribs = user_record_name_alternatives(attribs)
  check_critical_attribute( attribs, :record_name )

  attribs[:value] = attribs[:value] || attribs[:im_handle]
  attribs[:value] = attribs[:value] || attribs[:imhandle]
  attribs[:value] = attribs[:value] || attribs[:handle]
  attribs[:value] = attribs[:value] || attribs[:chat]
  attribs[:value] = attribs[:value] || attribs[:im]

  check_critical_attribute( attribs, :value, :chat )
  attribs    = tidy_attribs(attribs)

  command    = {action: 'append', scope: 'Users', attribute: 'IMHandle'}
  user_attrs = attribs.merge(command)

  dscl( user_attrs, dir_info )
end

#user_append_keyword(attribs, dir_info) ⇒ Object Also known as: user_append_keywords

/usr/bin/dscl -u diradmin -P A-B1g-S3cret /LDAPv3/127.0.0.1 -append /Users/$shortname_USERNAME apple-keyword “$VALUE”



220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
# File 'lib/open_directory_utils/commands_user_attribs.rb', line 220

def user_append_keyword(attribs, dir_info)
  attribs = user_record_name_alternatives(attribs)
  check_critical_attribute( attribs, :record_name )

  attribs[:value] = attribs[:value] || attribs[:keywords]
  attribs[:value] = attribs[:value] || attribs[:keyword]

  check_critical_attribute( attribs, :value, :keyword )
  attribs    = tidy_attribs(attribs)

  command    = {action: 'append', scope: 'Users', attribute: 'Keywords'}
  user_attrs = attribs.merge(command)

  dscl( user_attrs, dir_info )
end

#user_create_chat(attribs, dir_info) ⇒ Object

first - /usr/bin/dscl -u diradmin -P A-B1g-S3cret /LDAPv3/127.0.0.1 -create /Users/$USER apple-imhandle “$VALUE” /usr/bin/dscl -u diradmin -P A-B1g-S3cret /LDAPv3/127.0.0.1 -create /Users/$USER apple-imhandle “AIM:created: $CREATE”



37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# File 'lib/open_directory_utils/commands_user_attribs.rb', line 37

def user_create_chat(attribs, dir_info)
  attribs = user_record_name_alternatives(attribs)
  check_critical_attribute( attribs, :record_name )

  attribs[:value] = attribs[:value] || attribs[:im_handle]
  attribs[:value] = attribs[:value] || attribs[:imhandle]
  attribs[:value] = attribs[:value] || attribs[:handle]
  attribs[:value] = attribs[:value] || attribs[:chat]
  attribs[:value] = attribs[:value] || attribs[:im]

  check_critical_attribute( attribs, :value, :chat )
  attribs    = tidy_attribs(attribs)

  command    = {action: 'create', scope: 'Users', attribute: 'IMHandle'}
  user_attrs = attribs.merge(command)

  dscl( user_attrs, dir_info )
end

#user_create_keyword(attribs, dir_info) ⇒ Object Also known as: user_create_keywords

1st keyword – /usr/bin/dscl -u diradmin -P A-B1g-S3cret /LDAPv3/127.0.0.1 -create /Users/$shortname_USERNAME apple-keyword “$VALUE” other keywords – /usr/bin/dscl -u diradmin -P A-B1g-S3cret /LDAPv3/127.0.0.1 -append /Users/$shortname_USERNAME apple-keyword “$VALUE”



202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
# File 'lib/open_directory_utils/commands_user_attribs.rb', line 202

def user_create_keyword(attribs, dir_info)
  attribs = user_record_name_alternatives(attribs)
  check_critical_attribute( attribs, :record_name )

  attribs[:value] = attribs[:value] || attribs[:keywords]
  attribs[:value] = attribs[:value] || attribs[:keyword]

  check_critical_attribute( attribs, :value, :keyword )
  attribs    = tidy_attribs(attribs)

  command    = {action: 'create', scope: 'Users', attribute: 'Keywords'}
  user_attrs = attribs.merge(command)

  dscl( user_attrs, dir_info )
end

#user_set_chat(attribs, dir_info) ⇒ Object Also known as: user_set_im_handle, user_set_chat_channels

first - /usr/bin/dscl -u diradmin -P A-B1g-S3cret /LDAPv3/127.0.0.1 -create /Users/$USER apple-imhandle “$VALUE” others - /usr/bin/dscl -u diradmin -P A-B1g-S3cret /LDAPv3/127.0.0.1 -append /Users/$USER apple-imhandle “$VALUE” /usr/bin/dscl -u diradmin -P A-B1g-S3cret /LDAPv3/127.0.0.1 -create /Users/$USER apple-imhandle “AIM:created: $CREATE” /usr/bin/dscl -u diradmin -P A-B1g-S3cret /LDAPv3/127.0.0.1 -append /Users/$USER apple-imhandle “ICQ:start: $START” /usr/bin/dscl -u diradmin -P A-B1g-S3cret /LDAPv3/127.0.0.1 -append /Users/$USER apple-imhandle “MSN:end: $END”

Raises:

  • (ArgumentError)


82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
# File 'lib/open_directory_utils/commands_user_attribs.rb', line 82

def user_set_chat(attribs, dir_info)
  attribs = user_record_name_alternatives(attribs)
  check_critical_attribute( attribs, :record_name )

  attribs[:values] = attribs[:values] || attribs[:im_handle]
  attribs[:values] = attribs[:values] || attribs[:imhandle]
  attribs[:values] = attribs[:values] || attribs[:handle]
  attribs[:values] = attribs[:values] || attribs[:chat]
  attribs[:values] = attribs[:values] || attribs[:im]

  answer = []
  Array(attribs[:values]).each_with_index do |value, index|
    attribs[:value] = value
    case index
    when 0
      answer << user_create_chat(attribs, dir_info)
    else
      answer << user_append_chat(attribs, dir_info)
    end
  end
  return answer  unless attribs[:values].nil? or attribs[:values].empty?
  raise ArgumentError, "values: '#{attribs[:values].inspect}' invalid, value_name: :chats"
end

#user_set_city(attribs, dir_info) ⇒ Object



17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/open_directory_utils/commands_user_attribs.rb', line 17

def user_set_city(attribs, dir_info)
  attribs = user_record_name_alternatives(attribs)
  check_critical_attribute( attribs, :record_name )

  attribs[:value] = attribs[:value] || attribs[:locale]
  attribs[:value] = attribs[:value] || attribs[:city]
  attribs[:value] = attribs[:value] || attribs[:town]
  attribs[:value] = attribs[:value] || attribs[:l]

  check_critical_attribute( attribs, :value, :city )
  attribs    = tidy_attribs(attribs)

  command    = {action: 'create', scope: 'Users', attribute: 'City'}
  user_attrs = attribs.merge(command)

  dscl( user_attrs, dir_info )
end

#user_set_comment(attribs, dir_info) ⇒ Object Also known as: user_set_description



112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
# File 'lib/open_directory_utils/commands_user_attribs.rb', line 112

def user_set_comment(attribs, dir_info)
  attribs = user_record_name_alternatives(attribs)
  check_critical_attribute( attribs, :record_name )

  attribs[:value] = attribs[:value] || attribs[:description]
  attribs[:value] = attribs[:value] || attribs[:comment]

  check_critical_attribute( attribs, :value, :comment )
  attribs    = tidy_attribs(attribs)

  command    = {action: 'create', scope: 'Users', attribute: 'Comment'}
  user_attrs = attribs.merge(command)

  dscl( user_attrs, dir_info )
end

#user_set_company(attribs, dir_info) ⇒ Object

/usr/bin/dscl -u diradmin -P A-B1g-S3cret /LDAPv3/127.0.0.1 -create /Users/$shortname_USERNAME apple-company “$VALUE”



130
131
132
133
134
135
136
137
138
139
140
141
142
143
# File 'lib/open_directory_utils/commands_user_attribs.rb', line 130

def user_set_company(attribs, dir_info)
  attribs = user_record_name_alternatives(attribs)
  check_critical_attribute( attribs, :record_name )

  attribs[:value] = attribs[:value] || attribs[:company]

  check_critical_attribute( attribs, :value, :company )
  attribs    = tidy_attribs(attribs)

  command    = {action: 'create', scope: 'Users', attribute: 'Company'}
  user_attrs = attribs.merge(command)

  dscl( user_attrs, dir_info )
end

#user_set_country(attribs, dir_info) ⇒ Object

alias_method :las_program_info, :user_set_company



146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
# File 'lib/open_directory_utils/commands_user_attribs.rb', line 146

def user_set_country(attribs, dir_info)
  attribs = user_record_name_alternatives(attribs)
  check_critical_attribute( attribs, :record_name )

  attribs[:value] = attribs[:value] || attribs[:country]
  attribs[:value] = attribs[:value] || attribs[:c]

  check_critical_attribute( attribs, :value, :country )
  attribs    = tidy_attribs(attribs)

  command    = {action: 'create', scope: 'Users', attribute: 'Country'}
  user_attrs = attribs.merge(command)

  dscl( user_attrs, dir_info )
end

#user_set_department(attribs, dir_info) ⇒ Object



162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
# File 'lib/open_directory_utils/commands_user_attribs.rb', line 162

def user_set_department(attribs, dir_info)
  attribs = user_record_name_alternatives(attribs)
  check_critical_attribute( attribs, :record_name )

  attribs[:value] = attribs[:value] || attribs[:department_number]
  attribs[:value] = attribs[:value] || attribs[:departmentnumber]
  attribs[:value] = attribs[:value] || attribs[:dept_number]
  attribs[:value] = attribs[:value] || attribs[:deptnumber]
  attribs[:value] = attribs[:value] || attribs[:department]
  attribs[:value] = attribs[:value] || attribs[:dept]

  check_critical_attribute( attribs, :value, :department )
  attribs    = tidy_attribs(attribs)

  command    = {action: 'create', scope: 'Users', attribute: 'Department'}
  user_attrs = attribs.merge(command)

  dscl( user_attrs, dir_info )
end

#user_set_home_phone(attribs, dir_info) ⇒ Object

/usr/bin/dscl -u diradmin -P A-B1g-S3cret /LDAPv3/127.0.0.1 -append /Users/$shortname_USERNAME apple-keyword “$VALUE”



262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
# File 'lib/open_directory_utils/commands_user_attribs.rb', line 262

def user_set_home_phone(attribs, dir_info)
  attribs = user_record_name_alternatives(attribs)
  check_critical_attribute( attribs, :record_name )

  attribs[:value] = attribs[:value] || attribs[:home_phone_number]
  attribs[:value] = attribs[:value] || attribs[:home_number]
  attribs[:value] = attribs[:value] || attribs[:home_phone]

  check_critical_attribute( attribs, :value, :home_phone )
  attribs    = tidy_attribs(attribs)

  command    = {action: 'create', scope: 'Users', attribute: 'HomePhoneNumber'}
  user_attrs = attribs.merge(command)

  dscl( user_attrs, dir_info )
end

#user_set_job_title(attribs, dir_info) ⇒ Object Also known as: user_set_title



182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
# File 'lib/open_directory_utils/commands_user_attribs.rb', line 182

def user_set_job_title(attribs, dir_info)
  attribs = user_record_name_alternatives(attribs)
  check_critical_attribute( attribs, :record_name )

  attribs[:value] = attribs[:value] || attribs[:job_title]
  attribs[:value] = attribs[:value] || attribs[:jobtitle]
  attribs[:value] = attribs[:value] || attribs[:title]

  check_critical_attribute( attribs, :value, :job_title )
  attribs    = tidy_attribs(attribs)

  command    = {action: 'create', scope: 'Users', attribute: 'JobTitle'}
  user_attrs = attribs.merge(command)

  dscl( user_attrs, dir_info )
end

#user_set_keywords(attribs, dir_info) ⇒ Object Also known as: user_set_keyword

/usr/bin/dscl -u diradmin -P A-B1g-S3cret /LDAPv3/127.0.0.1 -append /Users/$shortname_USERNAME apple-keyword “$VALUE”

Raises:

  • (ArgumentError)


238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
# File 'lib/open_directory_utils/commands_user_attribs.rb', line 238

def user_set_keywords(attribs, dir_info)
  attribs = user_record_name_alternatives(attribs)
  check_critical_attribute( attribs, :record_name )

  attribs[:values] = attribs[:values] || attribs[:keywords]
  attribs[:values] = attribs[:values] || attribs[:keyword]

  answer = []
  Array(attribs[:values]).each_with_index do |value, index|
    attribs[:value] = value

    case index
    when 0
      answer << user_create_keyword(attribs, dir_info)
    else
      answer << user_append_keyword(attribs, dir_info)
    end
  end
  return answer  unless attribs[:values].nil? or attribs[:values].empty?
  raise ArgumentError, "values: '#{attribs[:values].inspect}' invalid, value_name: :keywords"
end

#user_set_mobile_phone(attribs, dir_info) ⇒ Object Also known as: user_set_mobile_number, user_set_mobile_phone_number

/usr/bin/dscl -u diradmin -P A-B1g-S3cret /LDAPv3/127.0.0.1 -append /Users/$shortname_USERNAME apple-keyword “$VALUE”



280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
# File 'lib/open_directory_utils/commands_user_attribs.rb', line 280

def user_set_mobile_phone(attribs, dir_info)
  attribs = user_record_name_alternatives(attribs)
  check_critical_attribute( attribs, :record_name )

  attribs[:value] = attribs[:value] || attribs[:mobile_phone_number]
  attribs[:value] = attribs[:value] || attribs[:mobile_number]
  attribs[:value] = attribs[:value] || attribs[:mobile_phone]

  check_critical_attribute( attribs, :value, :mobile_phone )
  attribs    = tidy_attribs(attribs)

  command    = {action: 'create', scope: 'Users', attribute: 'MobileNumber'}
  user_attrs = attribs.merge(command)

  dscl( user_attrs, dir_info )
end

#user_set_name_suffix(attribs, dir_info) ⇒ Object

/usr/bin/dscl -u diradmin -P A-B1g-S3cret /LDAPv3/127.0.0.1 -append /Users/$shortname_USERNAME apple-keyword “$VALUE”



321
322
323
324
325
326
327
328
329
330
331
332
333
334
# File 'lib/open_directory_utils/commands_user_attribs.rb', line 321

def user_set_name_suffix(attribs, dir_info)
  attribs = user_record_name_alternatives(attribs)
  check_critical_attribute( attribs, :record_name )

  attribs[:value] = attribs[:value] || attribs[:name_suffix]
  attribs[:value] = attribs[:value] || attribs[:suffix]
  check_critical_attribute( attribs, :value, :name_suffix )
  attribs    = tidy_attribs(attribs)

  command    = {action: 'create', scope: 'Users', attribute: 'NameSuffix'}
  user_attrs = attribs.merge(command)

  dscl( user_attrs, dir_info )
end

#user_set_organization_info(attribs, dir_info) ⇒ Object Also known as: user_set_org_info



336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
# File 'lib/open_directory_utils/commands_user_attribs.rb', line 336

def user_set_organization_info(attribs, dir_info)
  attribs = user_record_name_alternatives(attribs)
  check_critical_attribute( attribs, :record_name )

  attribs[:value] = attribs[:value] || attribs[:organization_info]
  attribs[:value] = attribs[:value] || attribs[:organization]
  attribs[:value] = attribs[:value] || attribs[:org_info]
  attribs[:value] = attribs[:value] || attribs[:org]
  check_critical_attribute( attribs, :value, :organization_info )
  attribs    = tidy_attribs(attribs)

  command    = {action: 'create', scope: 'Users', attribute: 'OrganizationInfo'}
  user_attrs = attribs.merge(command)

  dscl( user_attrs, dir_info )
end

#user_set_postal_code(attribs, dir_info) ⇒ Object Also known as: user_set_post_code, user_set_zip_code

/usr/bin/dscl -u diradmin -P A-B1g-S3cret /LDAPv3/127.0.0.1 -create /Users/$shortname_USERNAME apple-webloguri “$VALUE”



356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
# File 'lib/open_directory_utils/commands_user_attribs.rb', line 356

def user_set_postal_code(attribs, dir_info)
  attribs = user_record_name_alternatives(attribs)
  check_critical_attribute( attribs, :record_name )

  attribs[:value] = attribs[:value] || attribs[:postal_code]
  attribs[:value] = attribs[:value] || attribs[:post_code]
  attribs[:value] = attribs[:value] || attribs[:zip_code]
  attribs[:value] = attribs[:value] || attribs[:zip]
  check_critical_attribute( attribs, :value, :postal_code )
  attribs    = tidy_attribs(attribs)

  command    = {action: 'create', scope: 'Users', attribute: 'PostalCode'}
  user_attrs = attribs.merge(command)

  dscl( user_attrs, dir_info )
end

#user_set_relationships(attribs, dir_info) ⇒ Object

alias_method :las_sync_date, :user_set_weblog



376
377
378
379
380
381
382
383
384
385
386
387
388
389
# File 'lib/open_directory_utils/commands_user_attribs.rb', line 376

def user_set_relationships(attribs, dir_info)
  attribs = user_record_name_alternatives(attribs)
  check_critical_attribute( attribs, :record_name )

  attribs[:value] = attribs[:value] || attribs[:relationships]
  attribs[:value] = attribs[:value] || attribs[:relations]
  check_critical_attribute( attribs, :value, :relationships )
  attribs    = tidy_attribs(attribs)

  command    = {action: 'create', scope: 'Users', attribute: 'Relationships'}
  user_attrs = attribs.merge(command)

  dscl( user_attrs, dir_info )
end

#user_set_state(attribs, dir_info) ⇒ Object



391
392
393
394
395
396
397
398
399
400
401
402
403
404
# File 'lib/open_directory_utils/commands_user_attribs.rb', line 391

def user_set_state(attribs, dir_info)
  attribs = user_record_name_alternatives(attribs)
  check_critical_attribute( attribs, :record_name )

  attribs[:value] = attribs[:value] || attribs[:state]
  attribs[:value] = attribs[:value] || attribs[:st]
  check_critical_attribute( attribs, :value, :state )
  attribs    = tidy_attribs(attribs)

  command    = {action: 'create', scope: 'Users', attribute: 'State'}
  user_attrs = attribs.merge(command)

  dscl( user_attrs, dir_info )
end

#user_set_street(attribs, dir_info) ⇒ Object Also known as: user_set_address



406
407
408
409
410
411
412
413
414
415
416
417
418
419
# File 'lib/open_directory_utils/commands_user_attribs.rb', line 406

def user_set_street(attribs, dir_info)
  attribs = user_record_name_alternatives(attribs)
  check_critical_attribute( attribs, :record_name )

  attribs[:value] = attribs[:value] || attribs[:address]
  attribs[:value] = attribs[:value] || attribs[:street]
  check_critical_attribute( attribs, :value, :street )
  attribs    = tidy_attribs(attribs)

  command    = {action: 'create', scope: 'Users', attribute: 'Street'}
  user_attrs = attribs.merge(command)

  dscl( user_attrs, dir_info )
end

#user_set_weblog(attribs, dir_info) ⇒ Object Also known as: user_set_blog

/usr/bin/dscl -u diradmin -P A-B1g-S3cret /LDAPv3/127.0.0.1 -create /Users/$shortname_USERNAME apple-webloguri “$VALUE”



423
424
425
426
427
428
429
430
431
432
433
434
435
436
# File 'lib/open_directory_utils/commands_user_attribs.rb', line 423

def user_set_weblog(attribs, dir_info)
  attribs = user_record_name_alternatives(attribs)
  check_critical_attribute( attribs, :record_name )

  attribs[:value] = attribs[:value] || attribs[:weblog]
  attribs[:value] = attribs[:value] || attribs[:blog]
  check_critical_attribute( attribs, :value, :weblog )
  attribs    = tidy_attribs(attribs)

  command    = {action: 'create', scope: 'Users', attribute: 'WeblogURI'}
  user_attrs = attribs.merge(command)

  dscl( user_attrs, dir_info )
end

#user_set_work_phone(attribs, dir_info) ⇒ Object

/usr/bin/dscl -u diradmin -P A-B1g-S3cret /LDAPv3/127.0.0.1 -append /Users/$shortname_USERNAME apple-keyword “$VALUE”



300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
# File 'lib/open_directory_utils/commands_user_attribs.rb', line 300

def user_set_work_phone(attribs, dir_info)
  attribs = user_record_name_alternatives(attribs)
  check_critical_attribute( attribs, :record_name )

  attribs[:value] = attribs[:value] || attribs[:work_phone_number]
  attribs[:value] = attribs[:value] || attribs[:phone_number]
  attribs[:value] = attribs[:value] || attribs[:work_number]
  attribs[:value] = attribs[:value] || attribs[:work_phone]
  attribs[:value] = attribs[:value] || attribs[:number]
  attribs[:value] = attribs[:value] || attribs[:phone]

  check_critical_attribute( attribs, :value, :work_phone )
  attribs    = tidy_attribs(attribs)

  command    = {action: 'create', scope: 'Users', attribute: 'PhoneNumber'}
  user_attrs = attribs.merge(command)

  dscl( user_attrs, dir_info )
end