passiveldap 0.1

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.
@@ -0,0 +1,423 @@
1
+ require "passiveldap"
2
+ require "iconv"
3
+
4
+ # the User class is a real-life example of the usage of PassiveLDAP.
5
+ #
6
+ # Most of the attributes are commented out, because I don't really use them, but they have their :multi_valued
7
+ # attribute set if they may be multi_valued (using A/D and the following objectclasses: top,person,user,organizationalperson),
8
+ # so they can be safely uncommented if needed.
9
+ #
10
+ # Some of the attributes are renamed, because they are used to represent something else (like workshops instead of department)
11
+ class User < PassiveLDAP::Base
12
+
13
+ COUNTRIES = [
14
+ [ "(válassz)", "" ],
15
+ [ "Afganisztán", "AF" ],
16
+ [ "Aland", "AX" ],
17
+ [ "Albánia", "AL" ],
18
+ [ "Algéria", "DZ" ],
19
+ [ "Amerikai Csendes-óceáni szigetek", "UM" ],
20
+ [ "Amerikai Egyesült Államok", "US" ],
21
+ [ "Amerikai Szamoa", "AS" ],
22
+ [ "Amerikai Virgin-szigetek", "VI" ],
23
+ [ "Andorra", "AD" ],
24
+ [ "Angola", "AO" ],
25
+ [ "Anguilla", "AI" ],
26
+ [ "Antarktisz", "AQ" ],
27
+ [ "Antigua és Barbuda", "AG" ],
28
+ [ "Argentína", "AR" ],
29
+ [ "Aruba", "AW" ],
30
+ [ "Ausztrália", "AU" ],
31
+ [ "Ausztria", "AT" ],
32
+ [ "Azerbajdzsán", "AZ" ],
33
+ [ "Bahama-szigetek", "BS" ],
34
+ [ "Bahrein", "BH" ],
35
+ [ "Banglades", "BD" ],
36
+ [ "Barbados", "BB" ],
37
+ [ "Belgium", "BE" ],
38
+ [ "Belize", "BZ" ],
39
+ [ "Benin", "BJ" ],
40
+ [ "Bermuda", "BM" ],
41
+ [ "Bhután", "BT" ],
42
+ [ "Bissau-Guinea", "GW" ],
43
+ [ "Bolívia", "BO" ],
44
+ [ "Bosznia-Hercegovina", "BA" ],
45
+ [ "Botswana", "BW" ],
46
+ [ "Bouvet-sziget", "BV" ],
47
+ [ "Brazília", "BR" ],
48
+ [ "Brit Indiai-óceáni terület", "IO" ],
49
+ [ "Brit Virgin-szigetek", "VG" ],
50
+ [ "Brunei", "BN" ],
51
+ [ "Bulgária", "BG" ],
52
+ [ "Burkina Faso", "BF" ],
53
+ [ "Burundi", "BI" ],
54
+ [ "Chile", "CL" ],
55
+ [ "Ciprus", "CY" ],
56
+ [ "Comore-szigetek", "KM" ],
57
+ [ "Cook-szigetek", "CK" ],
58
+ [ "Costa Rica", "CR" ],
59
+ [ "Csád", "TD" ],
60
+ [ "Csehország", "CZ" ],
61
+ [ "Dánia", "DK" ],
62
+ [ "Dél-afrikai Köztársaság", "ZA" ],
63
+ [ "Dél-Georgia és Déli-Sandwich-szigetek", "GS" ],
64
+ [ "Dominikai Közösség", "DM" ],
65
+ [ "Dominikai Köztársaság", "DO" ],
66
+ [ "Dzsibuti", "DJ" ],
67
+ [ "Ecuador", "EC" ],
68
+ [ "Egyenlítői-Guinea", "GQ" ],
69
+ [ "Egyesült Arab Emírségek", "AE" ],
70
+ [ "Egyiptom", "EG" ],
71
+ [ "Elefántcsontpart", "CI" ],
72
+ [ "El Salvador", "SV" ],
73
+ [ "Eritrea", "ER" ],
74
+ [ "Északi-Mariana-szigetek", "MP" ],
75
+ [ "Észtország", "EE" ],
76
+ [ "Etiópia", "ET" ],
77
+ [ "Falkland-szigetek", "FK" ],
78
+ [ "Fehéroroszország", "BY" ],
79
+ [ "Feröer", "FO" ],
80
+ [ "Fidzsi", "FJ" ],
81
+ [ "Finnország", "FI" ],
82
+ [ "Francia déli és antarktiszi területek", "TF" ],
83
+ [ "Francia Guyana", "GF" ],
84
+ [ "Franciaország", "FR" ],
85
+ [ "Francia Polinézia", "PF" ],
86
+ [ "Fülöp-szigetek", "PH" ],
87
+ [ "Gabon", "GA" ],
88
+ [ "Gambia", "GM" ],
89
+ [ "Ghána", "GH" ],
90
+ [ "Gibraltár", "GI" ],
91
+ [ "Görögország", "GR" ],
92
+ [ "Grenada", "GD" ],
93
+ [ "Grönland", "GL" ],
94
+ [ "Grúzia", "GE" ],
95
+ [ "Guadeloupe", "GP" ],
96
+ [ "Guam", "GU" ],
97
+ [ "Guatemala", "GT" ],
98
+ [ "Guinea", "GN" ],
99
+ [ "Guyana", "GY" ],
100
+ [ "Haiti", "HT" ],
101
+ [ "Heard-sziget és McDonald-szigetek", "HM" ],
102
+ [ "Holland Antillák", "AN" ],
103
+ [ "Hollandia", "NL" ],
104
+ [ "Honduras", "HN" ],
105
+ [ "Hongkong", "HK" ],
106
+ [ "Horvátország", "HR" ],
107
+ [ "India", "IN" ],
108
+ [ "Indonézia", "ID" ],
109
+ [ "Irak", "IQ" ],
110
+ [ "Irán", "IR" ],
111
+ [ "Írország", "IE" ],
112
+ [ "Izland", "IS" ],
113
+ [ "Izrael", "IL" ],
114
+ [ "Jamaika", "JM" ],
115
+ [ "Japán", "JP" ],
116
+ [ "Jemen", "YE" ],
117
+ [ "Jordánia", "JO" ],
118
+ [ "Kajmán-szigetek", "KY" ],
119
+ [ "Kambodzsa", "KH" ],
120
+ [ "Kamerun", "CM" ],
121
+ [ "Kanada", "CA" ],
122
+ [ "Karácsony-sziget", "CX" ],
123
+ [ "Katar", "QA" ],
124
+ [ "Kazahsztán", "KZ" ],
125
+ [ "Kelet-Timor", "TL" ],
126
+ [ "Kenya", "KE" ],
127
+ [ "Kína", "CN" ],
128
+ [ "Kirgizisztán", "KG" ],
129
+ [ "Kiribati", "KI" ],
130
+ [ "Kókusz (Keeling)-szigetek", "CC" ],
131
+ [ "Kolumbia", "CO" ],
132
+ [ "Kongói Demokratikus Köztársaság (Zaire)", "CD" ],
133
+ [ "Kongói Köztársaság (Kongó)", "CG" ],
134
+ [ "Dél-Korea (Koreai Köztársaság)", "KR" ],
135
+ [ "Észak-Korea (Koreai NDK)", "KP" ],
136
+ [ "Közép-Afrika", "CF" ],
137
+ [ "Kuba", "CU" ],
138
+ [ "Kuvait", "KW" ],
139
+ [ "Laosz", "LA" ],
140
+ [ "Lengyelország", "PL" ],
141
+ [ "Lesotho", "LS" ],
142
+ [ "Lettország", "LV" ],
143
+ [ "Libanon", "LB" ],
144
+ [ "Libéria", "LR" ],
145
+ [ "Líbia", "LY" ],
146
+ [ "Liechtenstein", "LI" ],
147
+ [ "Litvánia", "LT" ],
148
+ [ "Luxemburg", "LU" ],
149
+ [ "Macedónia", "MK" ],
150
+ [ "Madagaszkár", "MG" ],
151
+ [ "Magyarország", "HU" ],
152
+ [ "Makaó", "MO" ],
153
+ [ "Malajzia", "MY" ],
154
+ [ "Malawi", "MW" ],
155
+ [ "Maldív-szigetek", "MV" ],
156
+ [ "Mali", "ML" ],
157
+ [ "Málta", "MT" ],
158
+ [ "Marokkó", "MA" ],
159
+ [ "Marshall-szigetek", "MH" ],
160
+ [ "Martinique", "MQ" ],
161
+ [ "Mauritánia", "MR" ],
162
+ [ "Mauritius", "MU" ],
163
+ [ "Mayotte", "YT" ],
164
+ [ "Mexikó", "MX" ],
165
+ [ "Mianmar", "MM" ],
166
+ [ "Mikronézia", "FM" ],
167
+ [ "Moldova", "MD" ],
168
+ [ "Monaco", "MC" ],
169
+ [ "Mongólia", "MN" ],
170
+ [ "Montserrat", "MS" ],
171
+ [ "Mozambik", "MZ" ],
172
+ [ "Nagy-Britannia (Egyesült Királyság)", "GB" ],
173
+ [ "Namíbia", "NA" ],
174
+ [ "Nauru", "NR" ],
175
+ [ "Németország", "DE" ],
176
+ [ "Nepál", "NP" ],
177
+ [ "Nicaragua", "NI" ],
178
+ [ "Niger", "NE" ],
179
+ [ "Nigéria", "NG" ],
180
+ [ "Niue", "NU" ],
181
+ [ "Norfolk-sziget", "NF" ],
182
+ [ "Norvégia", "NO" ],
183
+ [ "Nyugat-Szahara", "EH" ],
184
+ [ "Olaszország", "IT" ],
185
+ [ "Omán", "OM" ],
186
+ [ "Oroszország", "RU" ],
187
+ [ "Örményország", "AM" ],
188
+ [ "Pakisztán", "PK" ],
189
+ [ "Palau", "PW" ],
190
+ [ "Palesztina", "PS" ],
191
+ [ "Panama", "PA" ],
192
+ [ "Pápua Új-Guinea", "PG" ],
193
+ [ "Paraguay", "PY" ],
194
+ [ "Peru", "PE" ],
195
+ [ "Pitcairn-szigetek", "PN" ],
196
+ [ "Portugália", "PT" ],
197
+ [ "Puerto Rico", "PR" ],
198
+ [ "Réunion", "RE" ],
199
+ [ "Románia", "RO" ],
200
+ [ "Ruanda", "RW" ],
201
+ [ "Saint Kitts és Nevis", "KN" ],
202
+ [ "Saint Lucia", "LC" ],
203
+ [ "Saint Pierre és Miquelon", "PM" ],
204
+ [ "Saint Vincent és a Grenadine-szigetek", "VC" ],
205
+ [ "Salamon-szigetek", "SB" ],
206
+ [ "San Marino", "SM" ],
207
+ [ "Sao Tomé és Príncipe", "ST" ],
208
+ [ "Seychelle-szigetek", "SC" ],
209
+ [ "Sierra Leone", "SL" ],
210
+ [ "Spanyolország", "ES" ],
211
+ [ "Srí Lanka", "LK" ],
212
+ [ "Suriname", "SR" ],
213
+ [ "Svájc", "CH" ],
214
+ [ "Svalbard (Spitzbergák) és Jan Mayen", "SJ" ],
215
+ [ "Svédország", "SE" ],
216
+ [ "Szamoa", "WS" ],
217
+ [ "Szaúd-Arábia", "SA" ],
218
+ [ "Szenegál", "SN" ],
219
+ [ "Szent Ilona", "SH" ],
220
+ [ "Szerbia és Montenegró", "CS" ],
221
+ [ "Szingapúr", "SG" ],
222
+ [ "Szíria", "SY" ],
223
+ [ "Szlovákia", "SK" ],
224
+ [ "Szlovénia", "SI" ],
225
+ [ "Szomália", "SO" ],
226
+ [ "Szudán", "SD" ],
227
+ [ "Szváziföld", "SZ" ],
228
+ [ "Tádzsikisztán", "TJ" ],
229
+ [ "Tajvan", "TW" ],
230
+ [ "Tanzánia", "TZ" ],
231
+ [ "Thaiföld", "TH" ],
232
+ [ "Togó", "TG" ],
233
+ [ "Tokelau", "TK" ],
234
+ [ "Tonga", "TO" ],
235
+ [ "Törökország", "TR" ],
236
+ [ "Trinidad és Tobago", "TT" ],
237
+ [ "Tunézia", "TN" ],
238
+ [ "Turks- és Caicos-szigetek", "TC" ],
239
+ [ "Tuvalu", "TV" ],
240
+ [ "Türkmenisztán", "TM" ],
241
+ [ "Uganda", "UG" ],
242
+ [ "Új-Kaledónia", "NC" ],
243
+ [ "Új-Zéland", "NZ" ],
244
+ [ "Ukrajna", "UA" ],
245
+ [ "Uruguay", "UY" ],
246
+ [ "Üzbegisztán", "UZ" ],
247
+ [ "Vanuatu", "VU" ],
248
+ [ "Vatikán", "VA" ],
249
+ [ "Venezuela", "VE" ],
250
+ [ "Vietnam", "VN" ],
251
+ [ "Wallis és Futuna", "WF" ],
252
+ [ "Zambia", "ZM" ],
253
+ [ "Zimbabwe", "ZW" ],
254
+ [ "Zöld-foki-szigetek", "CV" ],
255
+ ]
256
+
257
+ passive_ldap \
258
+ :id_attribute => :uidnumber,
259
+ :record_base => "cn=Users,dc=eotvos,dc=elte,dc=hu",
260
+ :default_array_separator => "\n",
261
+ :default_protection_level => 2
262
+ passive_ldap_attr \
263
+ :badpwdcount => { :name => :bad_password_count,
264
+ :read_only => true },
265
+ :c => { :name => :country_id, :default_value => "HU", :level => 1 },
266
+ :cn => { :name => :common_name,
267
+ :default_value => Proc.new { |s| "user_#{s.id}" } },
268
+ # :co => { :name => :country },
269
+ :codepage => { :default_value => "0",
270
+ :read_only => true,
271
+ :hidden => true },
272
+ :comment => { },
273
+ :company => { :name => :university },
274
+ # :countrycode => { :name => :country_code },
275
+ :department => { :name => :main_workshop, :default_value => "other", :level => 1 },
276
+ :departmentnumber => { :name => :workshops,
277
+ :multi_valued => true, :level => 1},
278
+ :description => { :name => :about,
279
+ :multi_valued => true },
280
+ # :displayname => attribute is at the end of the list!
281
+ # :division => { },
282
+ :dn => { :default_value => Proc.new { |s| "cn=#{s.common_name},#{s.class.settings[:record_base]}" },
283
+ :read_only => true,
284
+ :hidden => true },
285
+ # :employeeid => { :name => :employee_id },
286
+ # :employeenumber => { :name => :employee_number },
287
+ :employeetype => { :name => :user_status, :level => 1, :default_value => "Bentlakó hallgató" },
288
+ # :facsimiletelephonenumber => { :name => :fax },
289
+ :gidnumber => { :name => :linux_group_id,
290
+ :default_value => "10001",
291
+ :read_only => true,
292
+ :hidden => true },
293
+ :givenname => { :name => :first_name, :level => 1 },
294
+ # :homedirectory => { :name => :home_directory,
295
+ # :read_only => true,
296
+ # :default_value => Proc.new { |s| "/home/#{s.common_name}" } },
297
+ :homephone => { :name => :home_phone, :level => 1 },
298
+ # :homepostaladdress => { :name => :home_postal_address },
299
+ # :houseidentifier => { :name => :house_identifier,
300
+ # :multi_valued => true},
301
+ :info => { },
302
+ # :initials => { },
303
+ :ipphone => { :name => :ip_phone, :level => 1 },
304
+ :l => { :name => :location, :level => 1 },
305
+ :lastlogoff => { :name => :last_logoff,
306
+ :read_only => true,
307
+ :type => PassiveLDAP::Types::ANSI_Date },
308
+ :lastlogon => { :name => :last_logon,
309
+ :read_only => true,
310
+ :type => PassiveLDAP::Types::ANSI_Date },
311
+ :loginshell => { :name => :linux_login_shell,
312
+ :default_value => "/usr/bin/rssh",
313
+ :read_only => true,
314
+ :hidden => true },
315
+ :logoncount => { :name => :logon_count,
316
+ :read_only => true },
317
+ :mail => { :level => 1},
318
+ :mssfu30name => { :name => :linux_account_name,
319
+ :default_value => Proc.new { |s| s.common_name },
320
+ :read_only => true,
321
+ :hidden => true },
322
+ :mssfu30nisdomain => { :name => :linux_domain,
323
+ :default_value => "eotvos",
324
+ :read_only => true,
325
+ :hidden => true },
326
+ :middlename => { :name => :middle_name, :level => 1 },
327
+ :mobile => { :level => 1},
328
+ # :networkaddress => { :name => :network_address },
329
+ :o => { :name => :organization },
330
+ :objectclass => { :name => :object_class,
331
+ :default_value => %w{top person organizationalPerson user},
332
+ :multi_valued => true,
333
+ :read_only => true,
334
+ :hidden => true },
335
+ # :otherfacsimiletelephonenumber => { :name => :other_faxes,
336
+ # :multi_valued => true },
337
+ :otherhomephone => { :name => :other_home_phones,
338
+ :multi_valued => true, :level => 1 },
339
+ :otheripphone => { :name => :other_ip_phones,
340
+ :multi_valued => true, :level => 1 },
341
+ :othermailbox => { :name => :other_mailboxes,
342
+ :multi_valued => true, :level => 1 },
343
+ :othermobile => { :name => :other_mobiles,
344
+ :multi_valued => true, :level => 1 },
345
+ # :otherpager => { :name => :other_pagers,
346
+ # :multi_valued => true },
347
+ # :othertelephone => { :name => :other_phones,
348
+ # :multi_valued => true },
349
+ # :ou => { :name => :organizational_unit,
350
+ # :multi_valued => true },
351
+ # :pager => { },
352
+ # :personaltitle => { :name => :personal_title },
353
+ :physicaldeliveryofficename => { :name => :office_name },
354
+ # :postaladdress => { :name => :postal_address,
355
+ # :multi_valued => true},
356
+ :postalcode => { :name => :postal_code, :level => 1 },
357
+ # :postofficebox => { :name => :post_office_box,
358
+ # :multi_valued => true},
359
+ # :primarygroupid => { :name => :primary_group_id,
360
+ # :read_only => true },
361
+ # :profilepath => { :name => :profile_path,
362
+ # :read_only => true },
363
+ :pwdlastset => { :name => :password_last_set,
364
+ :read_only => true,
365
+ :type => PassiveLDAP::Types::ANSI_Date },
366
+ :roomnumber => { :name => :room_number, :level => 1 },
367
+ :samaccountname => { :name => :sam_account_name,
368
+ :read_only => true,
369
+ :default_value => Proc.new { |s| s.common_name },
370
+ :hidden => true },
371
+ # :samaccounttype => { :name => :sam_account_type,
372
+ # :default_value => "805306368", # beware! can't set default_value of this attribute at creation, it will result in an error
373
+ # :read_only => true,
374
+ # :hidden => true },
375
+ # :scriptpath => { :name => :script_path,
376
+ # :read_only => true },
377
+ :sn => { :name => :surname,
378
+ :default_value => Proc.new { |s| s.common_name }, :level => 1 },
379
+ :st => { :name => :state, :level => 1 },
380
+ # :street => { :name => :street },
381
+ :streetaddress => { :name => :street_address, :level => 1 },
382
+ # :telephonenumber => { :name => :phone },
383
+ :title => { :name => :occupation },
384
+ :uid => { :multi_valued => true,
385
+ :default_value => Proc.new { |s| [s.common_name] },
386
+ :read_only => true,
387
+ :hidden => true },
388
+ :unicodepwd => { :default_value => Proc.new { |s| if s.new_record? then Iconv.conv("UCS-2LE","UTF-8",'"aBc123!?"') else nil end },
389
+ :read_only => true,
390
+ :hidden => true },
391
+ # AD uses UCS-2 Little Endian encoding, and the password string is quoted with "-s.
392
+ # Because the unicodePwd is write-only and invisible in AD, we only want a default_value
393
+ # if the record is new, that is why we return nil if the record is not new.
394
+ # See PassiveLDAP::Base#set_password for more info
395
+ :unixhomedirectory => { :name => :linux_home_directory,
396
+ :default_value => Proc.new { |s| "/home/#{s.common_name}" },
397
+ :read_only => true,
398
+ :hidden => true },
399
+ :url => { :multi_valued => true, :level => 1 },
400
+ :useraccountcontrol => { :default_value => "512",
401
+ :read_only => true,
402
+ :hidden => true },
403
+ :userprincipalname => { :name => :user_principal_name,
404
+ :default_value => Proc.new { |s| "#{s.common_name}@eotvos.elte.hu" },
405
+ :read_only => true,
406
+ :hidden => true },
407
+ :wwwhomepage => { :level => 1},
408
+ # this attribute is at the end, because it's default value uses surname and firstname
409
+ :displayname => { :name => :display_name, :level => 1,
410
+ :default_value => Proc.new { |s| "#{s.surname} #{s.first_name}"} }
411
+
412
+ validates_presence_of :surname, :first_name, :message => "A neveket meg kell adni"
413
+ validates_format_of :mail, :with => /\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\Z/i, :allow_nil => true, :allow_blank => true, :message => "Az e-mail cím formátuma hibás!"
414
+ validates_format_of_each :other_mailboxes, :with => /\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\Z/i, :allow_nil => true, :allow_blank => true, :message => "A további e-mail címek valamelyike hibás formátumú!"
415
+ validates_format_of :mobile, :with => /\A[-+ _0-9]*\Z/, :allow_nil => true, :allow_blank => true,:message => "A mobiltelefonszám csak számokat és a \"-\", \"+\", \" \", \"_\" jeleket tartalmazhatja!"
416
+ validates_format_of :postal_code, :with => /\A[0-9]*\Z/,:allow_nil => true, :allow_blank => true, :message => "Az irányítószám csak szám lehet!"
417
+ validates_format_of :room_number, :with => /\A[0-9]*\Z/, :allow_nil => true, :allow_blank => true,:message => "A szobaszám csak szám lehet!"
418
+ validates_format_of :home_phone, :with => /\A[-+ _0-9]*\Z/, :allow_nil => true, :allow_blank => true,:message => "A telefonszám csak számokat és a \"-\", \"+\", \" \", \"_\" jeleket tartalmazhatja!"
419
+ validates_format_of_each :other_mobiles, :with => /\A[-+ _0-9]*\Z/, :allow_nil => true, :allow_blank => true,:message => "A mobilszámok csak számokat és a \"-\", \"+\", \" \", \"_\" jeleket tartalmazhatják!"
420
+ validates_format_of_each :other_home_phones, :with => /\A[-+ _0-9]*\Z/, :allow_nil => true, :allow_blank => true,:message => "A telefonszámok csak számokat és a \"-\", \"+\", \" \", \"_\" jeleket tartalmazhatják!"
421
+
422
+ validates_inclusion_of :country_id, :in => COUNTRIES.map { |disp, value| value }
423
+ end
@@ -0,0 +1,20 @@
1
+ == Info
2
+
3
+ These tests should run by an ADAM instance, whose schema has been
4
+ extended by the schema_adam.ldif file (change the CN=X to your
5
+ configuration base), and the person class has been extended with
6
+ this uidnumber attribute. The :record_base and some other config
7
+ values are hard-coded in the user.rb test files, so you should change
8
+ it too.
9
+
10
+ Of course other LDAP servers should work too, but I only tested this in
11
+ an ADAM instance, because I didn't want to make a test environment
12
+ in our production AD server. Some functions could not be tested
13
+ in ADAM (for example I could only bind to an ADAM instence
14
+ using anonymous connection, so things like set_protection_level,
15
+ bind, or anything else that needs authentication are untested)
16
+
17
+ Be sure to allow anonymous access, read/write, etc in your ADAM server!
18
+
19
+ If you use some other servers please modify the test so they could work on
20
+ them, and send those tests to me!
@@ -0,0 +1,19 @@
1
+ dn: CN=Uid-Number,CN=Schema,CN=Configuration,CN=X
2
+ changetype: ntdsschemaadd
3
+ objectClass: top
4
+ objectClass: attributeSchema
5
+ cn: Uid-Number
6
+ attributeID: 1.2.840.113556.1.4.302.1.2.3.4.5.6.7
7
+ attributeSyntax: 2.5.5.9
8
+ isSingleValued: TRUE
9
+ rangeLower: 1
10
+ rangeUpper: 100000
11
+ showInAdvancedViewOnly: TRUE
12
+ adminDisplayName: Uid-Number
13
+ adminDescription: Uid-Number
14
+ instanceType: 4
15
+ oMSyntax: 2
16
+ searchFlags: 0
17
+ lDAPDisplayName: uidNumber
18
+ schemaIDGUID:: MnqWv+YM0BGihQCqADBJ4g==
19
+ systemOnly: FALSE