blob: ac76452382915c14cb69718d4c9cfb704e62829b [file] [log] [blame]
Matthias Andreas Benkard7b2a3a12021-08-16 10:57:25 +02001<?php
2
3namespace Adldap\Schemas;
4
5use Adldap\Models\User;
6use Adldap\Models\Entry;
7use Adldap\Models\Group;
8use Adldap\Models\Contact;
9use Adldap\Models\Printer;
10use Adldap\Models\Computer;
11use Adldap\Models\Container;
12use Adldap\Models\Organization;
13use Adldap\Models\OrganizationalUnit;
14use Adldap\Models\ForeignSecurityPrincipal;
15
16abstract class Schema implements SchemaInterface
17{
18 /**
19 * {@inheritdoc}
20 */
21 public function accountExpires()
22 {
23 return 'accountexpires';
24 }
25
26 /**
27 * {@inheritdoc}
28 */
29 public function accountName()
30 {
31 return 'samaccountname';
32 }
33
34 /**
35 * {@inheritdoc}
36 */
37 public function accountType()
38 {
39 return 'samaccounttype';
40 }
41
42 /**
43 * {@inheritdoc}
44 */
45 public function adminDisplayName()
46 {
47 return 'admindisplayname';
48 }
49
50 /**
51 * {@inheritdoc}
52 */
53 public function anr()
54 {
55 return 'anr';
56 }
57
58 /**
59 * {@inheritdoc}
60 */
61 public function badPasswordCount()
62 {
63 return 'badpwdcount';
64 }
65
66 /**
67 * {@inheritdoc}
68 */
69 public function badPasswordTime()
70 {
71 return 'badpasswordtime';
72 }
73
74 /**
75 * {@inheritdoc}
76 */
77 public function commonName()
78 {
79 return 'cn';
80 }
81
82 /**
83 * {@inheritdoc}
84 */
85 public function company()
86 {
87 return 'company';
88 }
89
90 /**
91 * {@inheritdoc}
92 */
93 public function computer()
94 {
95 return 'computer';
96 }
97
98 /**
99 * {@inheritdoc}
100 */
101 public function computerModel()
102 {
103 return Computer::class;
104 }
105
106 /**
107 * {@inheritdoc}
108 */
109 public function configurationNamingContext()
110 {
111 return 'configurationnamingcontext';
112 }
113
114 /**
115 * {@inheritdoc}
116 */
117 public function contact()
118 {
119 return 'contact';
120 }
121
122 /**
123 * {@inheritdoc}
124 */
125 public function contactModel()
126 {
127 return Contact::class;
128 }
129
130 /**
131 * {@inheritdoc}
132 */
133 public function containerModel()
134 {
135 return Container::class;
136 }
137
138 /**
139 * {@inheritdoc}
140 */
141 public function country()
142 {
143 return 'c';
144 }
145
146 /**
147 * {@inheritdoc}
148 */
149 public function createdAt()
150 {
151 return 'whencreated';
152 }
153
154 /**
155 * {@inheritdoc}
156 */
157 public function currentTime()
158 {
159 return 'currenttime';
160 }
161
162 /**
163 * {@inheritdoc}
164 */
165 public function defaultNamingContext()
166 {
167 return 'defaultnamingcontext';
168 }
169
170 /**
171 * {@inheritdoc}
172 */
173 public function department()
174 {
175 return 'department';
176 }
177
178 /**
179 * {@inheritdoc}
180 */
181 public function departmentNumber()
182 {
183 return 'departmentnumber';
184 }
185
186 /**
187 * {@inheritdoc}
188 */
189 public function description()
190 {
191 return 'description';
192 }
193
194 /**
195 * {@inheritdoc}
196 */
197 public function displayName()
198 {
199 return 'displayname';
200 }
201
202 /**
203 * {@inheritdoc}
204 */
205 public function dnsHostName()
206 {
207 return 'dnshostname';
208 }
209
210 /**
211 * {@inheritdoc}
212 */
213 public function domainComponent()
214 {
215 return 'dc';
216 }
217
218 /**
219 * {@inheritdoc}
220 */
221 public function driverName()
222 {
223 return 'drivername';
224 }
225
226 /**
227 * {@inheritdoc}
228 */
229 public function driverVersion()
230 {
231 return 'driverversion';
232 }
233
234 /**
235 * {@inheritdoc}
236 */
237 public function email()
238 {
239 return 'mail';
240 }
241
242 /**
243 * {@inheritdoc}
244 */
245 public function emailNickname()
246 {
247 return 'mailnickname';
248 }
249
250 /**
251 * {@inheritdoc}
252 */
253 public function employeeId()
254 {
255 return 'employeeid';
256 }
257
258 /**
259 * {@inheritdoc}
260 */
261 public function employeeNumber()
262 {
263 return 'employeenumber';
264 }
265
266 /**
267 * {@inheritdoc}
268 */
269 public function employeeType()
270 {
271 return 'employeetype';
272 }
273
274 /**
275 * {@inheritdoc}
276 */
277 public function entryModel()
278 {
279 return Entry::class;
280 }
281
282 /**
283 * {@inheritdoc}
284 */
285 public function false()
286 {
287 return 'FALSE';
288 }
289
290 /**
291 * {@inheritdoc}
292 */
293 public function firstName()
294 {
295 return 'givenname';
296 }
297
298 /**
299 * {@inheritdoc}
300 */
301 public function groupModel()
302 {
303 return Group::class;
304 }
305
306 /**
307 * {@inheritdoc}
308 */
309 public function groupType()
310 {
311 return 'grouptype';
312 }
313
314 /**
315 * {@inheritdoc}
316 */
317 public function homeAddress()
318 {
319 return 'homepostaladdress';
320 }
321
322 /**
323 * {@inheritdoc}
324 */
325 public function homeMdb()
326 {
327 return 'homemdb';
328 }
329
330 /**
331 * {@inheritdoc}
332 */
333 public function homeDrive()
334 {
335 return 'homedrive';
336 }
337
338 /**
339 * {@inheritdoc}
340 */
341 public function homeDirectory()
342 {
343 return 'homedirectory';
344 }
345
346 /**
347 * {@inheritdoc}
348 */
349 public function homePhone()
350 {
351 return 'homephone';
352 }
353
354 /**
355 * {@inheritdoc}
356 */
357 public function info()
358 {
359 return 'info';
360 }
361
362 /**
363 * {@inheritdoc}
364 */
365 public function initials()
366 {
367 return 'initials';
368 }
369
370 /**
371 * {@inheritdoc}
372 */
373 public function instanceType()
374 {
375 return 'instancetype';
376 }
377
378 /**
379 * {@inheritdoc}
380 */
381 public function ipPhone()
382 {
383 return 'ipphone';
384 }
385
386 /**
387 * {@inheritdoc}
388 */
389 public function isCriticalSystemObject()
390 {
391 return 'iscriticalsystemobject';
392 }
393
394 /**
395 * {@inheritdoc}
396 */
397 public function jpegPhoto()
398 {
399 return 'jpegphoto';
400 }
401
402 /**
403 * {@inheritdoc}
404 */
405 public function lastLogOff()
406 {
407 return 'lastlogoff';
408 }
409
410 /**
411 * {@inheritdoc}
412 */
413 public function lastLogOn()
414 {
415 return 'lastlogon';
416 }
417
418 /**
419 * {@inheritdoc}
420 */
421 public function lastLogOnTimestamp()
422 {
423 return 'lastlogontimestamp';
424 }
425
426 /**
427 * {@inheritdoc}
428 */
429 public function lastName()
430 {
431 return 'sn';
432 }
433
434 /**
435 * {@inheritdoc}
436 */
437 public function legacyExchangeDn()
438 {
439 return 'legacyexchangedn';
440 }
441
442 /**
443 * {@inheritdoc}
444 */
445 public function locale()
446 {
447 return 'l';
448 }
449
450 /**
451 * {@inheritdoc}
452 */
453 public function location()
454 {
455 return 'location';
456 }
457
458 /**
459 * {@inheritdoc}
460 */
461 public function manager()
462 {
463 return 'manager';
464 }
465
466 /**
467 * {@inheritdoc}
468 */
469 public function managedBy()
470 {
471 return 'managedby';
472 }
473
474 /**
475 * {@inheritdoc}
476 */
477 public function maxPasswordAge()
478 {
479 return 'maxpwdage';
480 }
481
482 /**
483 * {@inheritdoc}
484 */
485 public function member()
486 {
487 return 'member';
488 }
489
490 /**
491 * {@inheritdoc}
492 */
493 public function memberIdentifier()
494 {
495 return 'distinguishedname';
496 }
497
498 /**
499 * {@inheritdoc}
500 */
501 public function memberOf()
502 {
503 return 'memberof';
504 }
505
506 /**
507 * {@inheritdoc}
508 */
509 public function memberOfRecursive()
510 {
511 return 'memberof:1.2.840.113556.1.4.1941:';
512 }
513
514 /**
515 * {@inheritdoc}
516 */
517 public function memberRange($from, $to)
518 {
519 return $this->member().";range={$from}-{$to}";
520 }
521
522 /**
523 * {@inheritdoc}
524 */
525 public function messageTrackingEnabled()
526 {
527 return 'messagetrackingenabled';
528 }
529
530 /**
531 * {@inheritdoc}
532 */
533 public function msExchangeServer()
534 {
535 return 'ms-exch-exchange-server';
536 }
537
538 /**
539 * {@inheritdoc}
540 */
541 public function name()
542 {
543 return 'name';
544 }
545
546 /**
547 * {@inheritdoc}
548 */
549 public function neverExpiresDate()
550 {
551 return '9223372036854775807';
552 }
553
554 /**
555 * {@inheritdoc}
556 */
557 public function objectCategoryComputer()
558 {
559 return 'computer';
560 }
561
562 /**
563 * {@inheritdoc}
564 */
565 public function objectCategoryContainer()
566 {
567 return 'container';
568 }
569
570 /**
571 * {@inheritdoc}
572 */
573 public function objectCategoryExchangePrivateMdb()
574 {
575 return 'msexchprivatemdb';
576 }
577
578 /**
579 * {@inheritdoc}
580 */
581 public function objectCategoryExchangeServer()
582 {
583 return 'msExchExchangeServer';
584 }
585
586 /**
587 * {@inheritdoc}
588 */
589 public function objectCategoryExchangeStorageGroup()
590 {
591 return 'msExchStorageGroup';
592 }
593
594 /**
595 * {@inheritdoc}
596 */
597 public function objectCategoryGroup()
598 {
599 return 'group';
600 }
601
602 /**
603 * {@inheritdoc}
604 */
605 public function objectCategoryOrganizationalUnit()
606 {
607 return 'organizational-unit';
608 }
609
610 /**
611 * {@inheritdoc}
612 */
613 public function objectCategoryPerson()
614 {
615 return 'person';
616 }
617
618 /**
619 * {@inheritdoc}
620 */
621 public function objectCategoryPrinter()
622 {
623 return 'print-queue';
624 }
625
626 /**
627 * {@inheritdoc}
628 */
629 public function objectClass()
630 {
631 return 'objectclass';
632 }
633
634 /**
635 * {@inheritdoc}
636 */
637 public function objectClassComputer()
638 {
639 return 'computer';
640 }
641
642 /**
643 * {@inheritdoc}
644 */
645 public function objectClassContact()
646 {
647 return 'contact';
648 }
649
650 /**
651 * {@inheritdoc}
652 */
653 public function objectClassContainer()
654 {
655 return 'container';
656 }
657
658 /**
659 * {@inheritdoc}
660 */
661 public function objectClassOrganization()
662 {
663 return 'organization';
664 }
665
666 /**
667 * {@inheritdoc}
668 */
669 public function objectClassPrinter()
670 {
671 return 'printqueue';
672 }
673
674 /**
675 * {@inheritdoc}
676 */
677 public function objectClassUser()
678 {
679 return 'user';
680 }
681
682 /**
683 * {@inheritdoc}
684 */
685 public function objectClassForeignSecurityPrincipal()
686 {
687 return 'foreignsecurityprincipal';
688 }
689
690 /**
691 * {@inheritdoc}
692 */
693 public function objectClassModelMap()
694 {
695 return [
696 $this->objectClassComputer() => $this->computerModel(),
697 $this->objectClassContact() => $this->contactModel(),
698 $this->objectClassPerson() => $this->userModel(),
699 $this->objectClassGroup() => $this->groupModel(),
700 $this->objectClassContainer() => $this->containerModel(),
701 $this->objectClassPrinter() => $this->printerModel(),
702 $this->objectClassOrganization() => $this->organizationModel(),
703 $this->objectClassOu() => $this->organizationalUnitModel(),
704 $this->objectClassForeignSecurityPrincipal() => $this->foreignSecurityPrincipalModel(),
705 ];
706 }
707
708 /**
709 * {@inheritdoc}
710 */
711 public function objectSid()
712 {
713 return 'objectsid';
714 }
715
716 /**
717 * {@inheritdoc}
718 */
719 public function objectSidRequiresConversion()
720 {
721 return true;
722 }
723
724 /**
725 * {@inheritdoc}
726 */
727 public function operatingSystem()
728 {
729 return 'operatingsystem';
730 }
731
732 /**
733 * {@inheritdoc}
734 */
735 public function operatingSystemServicePack()
736 {
737 return 'operatingsystemservicepack';
738 }
739
740 /**
741 * {@inheritdoc}
742 */
743 public function operatingSystemVersion()
744 {
745 return 'operatingsystemversion';
746 }
747
748 /**
749 * {@inheritdoc}
750 */
751 public function organization()
752 {
753 return 'organization';
754 }
755
756 /**
757 * {@inheritdoc}
758 */
759 public function organizationName()
760 {
761 return 'o';
762 }
763
764 /**
765 * {@inheritdoc}
766 */
767 public function organizationalPerson()
768 {
769 return 'organizationalperson';
770 }
771
772 /**
773 * {@inheritdoc}
774 */
775 public function organizationalUnit()
776 {
777 return 'organizationalunit';
778 }
779
780 /**
781 * {@inheritdoc}
782 */
783 public function organizationalUnitModel()
784 {
785 return OrganizationalUnit::class;
786 }
787
788 /**
789 * {@inheritdoc}
790 */
791 public function organizationModel()
792 {
793 return Organization::class;
794 }
795
796 /**
797 * {@inheritdoc}
798 */
799 public function organizationalUnitShort()
800 {
801 return 'ou';
802 }
803
804 /**
805 * {@inheritdoc}
806 */
807 public function otherMailbox()
808 {
809 return 'othermailbox';
810 }
811
812 /**
813 * {@inheritdoc}
814 */
815 public function passwordLastSet()
816 {
817 return 'pwdlastset';
818 }
819
820 /**
821 * {@inheritdoc}
822 */
823 public function person()
824 {
825 return 'person';
826 }
827
828 /**
829 * {@inheritdoc}
830 */
831 public function personalTitle()
832 {
833 return 'personaltitle';
834 }
835
836 /**
837 * {@inheritdoc}
838 */
839 public function physicalDeliveryOfficeName()
840 {
841 return 'physicaldeliveryofficename';
842 }
843
844 /**
845 * {@inheritdoc}
846 */
847 public function portName()
848 {
849 return 'portname';
850 }
851
852 /**
853 * {@inheritdoc}
854 */
855 public function postalCode()
856 {
857 return 'postalcode';
858 }
859
860 /**
861 * {@inheritdoc}
862 */
863 public function postOfficeBox()
864 {
865 return 'postofficebox';
866 }
867
868 /**
869 * {@inheritdoc}
870 */
871 public function primaryGroupId()
872 {
873 return 'primarygroupid';
874 }
875
876 /**
877 * {@inheritdoc}
878 */
879 public function printerBinNames()
880 {
881 return 'printbinnames';
882 }
883
884 /**
885 * {@inheritdoc}
886 */
887 public function printerColorSupported()
888 {
889 return 'printcolor';
890 }
891
892 /**
893 * {@inheritdoc}
894 */
895 public function printerDuplexSupported()
896 {
897 return 'printduplexsupported';
898 }
899
900 /**
901 * {@inheritdoc}
902 */
903 public function printerEndTime()
904 {
905 return 'printendtime';
906 }
907
908 /**
909 * {@inheritdoc}
910 */
911 public function printerMaxResolutionSupported()
912 {
913 return 'printmaxresolutionsupported';
914 }
915
916 /**
917 * {@inheritdoc}
918 */
919 public function printerMediaSupported()
920 {
921 return 'printmediasupported';
922 }
923
924 /**
925 * {@inheritdoc}
926 */
927 public function printerMemory()
928 {
929 return 'printmemory';
930 }
931
932 /**
933 * {@inheritdoc}
934 */
935 public function printerModel()
936 {
937 return Printer::class;
938 }
939
940 /**
941 * {@inheritdoc}
942 */
943 public function printerName()
944 {
945 return 'printername';
946 }
947
948 /**
949 * {@inheritdoc}
950 */
951 public function printerOrientationSupported()
952 {
953 return 'printorientationssupported';
954 }
955
956 /**
957 * {@inheritdoc}
958 */
959 public function printerPrintRate()
960 {
961 return 'printrate';
962 }
963
964 /**
965 * {@inheritdoc}
966 */
967 public function printerPrintRateUnit()
968 {
969 return 'printrateunit';
970 }
971
972 /**
973 * {@inheritdoc}
974 */
975 public function printerShareName()
976 {
977 return 'printsharename';
978 }
979
980 /**
981 * {@inheritdoc}
982 */
983 public function printerStaplingSupported()
984 {
985 return 'printstaplingsupported';
986 }
987
988 /**
989 * {@inheritdoc}
990 */
991 public function printerStartTime()
992 {
993 return 'printstarttime';
994 }
995
996 /**
997 * {@inheritdoc}
998 */
999 public function priority()
1000 {
1001 return 'priority';
1002 }
1003
1004 /**
1005 * {@inheritdoc}
1006 */
1007 public function profilePath()
1008 {
1009 return 'profilepath';
1010 }
1011
1012 /**
1013 * {@inheritdoc}
1014 */
1015 public function proxyAddresses()
1016 {
1017 return 'proxyaddresses';
1018 }
1019
1020 /**
1021 * {@inheritdoc}
1022 */
1023 public function roomNumber()
1024 {
1025 return 'roomnumber';
1026 }
1027
1028 /**
1029 * {@inheritdoc}
1030 */
1031 public function rootDomainNamingContext()
1032 {
1033 return 'rootdomainnamingcontext';
1034 }
1035
1036 /**
1037 * {@inheritdoc}
1038 */
1039 public function schemaNamingContext()
1040 {
1041 return 'schemanamingcontext';
1042 }
1043
1044 /**
1045 * {@inheritdoc}
1046 */
1047 public function scriptPath()
1048 {
1049 return 'scriptpath';
1050 }
1051
1052 /**
1053 * {@inheritdoc}
1054 */
1055 public function serialNumber()
1056 {
1057 return 'serialnumber';
1058 }
1059
1060 /**
1061 * {@inheritdoc}
1062 */
1063 public function serverName()
1064 {
1065 return 'servername';
1066 }
1067
1068 /**
1069 * {@inheritdoc}
1070 */
1071 public function showInAddressBook()
1072 {
1073 return 'showinaddressbook';
1074 }
1075
1076 /**
1077 * {@inheritdoc}
1078 */
1079 public function street()
1080 {
1081 return 'street';
1082 }
1083
1084 /**
1085 * {@inheritdoc}
1086 */
1087 public function streetAddress()
1088 {
1089 return 'streetaddress';
1090 }
1091
1092 /**
1093 * {@inheritdoc}
1094 */
1095 public function systemFlags()
1096 {
1097 return 'systemflags';
1098 }
1099
1100 /**
1101 * {@inheritdoc}
1102 */
1103 public function telephone()
1104 {
1105 return 'telephonenumber';
1106 }
1107
1108 /**
1109 * {@inheritdoc}
1110 */
1111 public function mobile()
1112 {
1113 return 'mobile';
1114 }
1115
1116 /**
1117 * {@inheritdoc}
1118 */
1119 public function otherMobile()
1120 {
1121 return 'othermobile';
1122 }
1123
1124 /**
1125 * {@inheritdoc}
1126 */
1127 public function facsimile()
1128 {
1129 return 'facsimiletelephonenumber';
1130 }
1131
1132 /**
1133 * {@inheritdoc}
1134 */
1135 public function thumbnail()
1136 {
1137 return 'thumbnailphoto';
1138 }
1139
1140 /**
1141 * {@inheritdoc}
1142 */
1143 public function title()
1144 {
1145 return 'title';
1146 }
1147
1148 /**
1149 * {@inheritdoc}
1150 */
1151 public function top()
1152 {
1153 return 'top';
1154 }
1155
1156 /**
1157 * {@inheritdoc}
1158 */
1159 public function true()
1160 {
1161 return 'TRUE';
1162 }
1163
1164 /**
1165 * {@inheritdoc}
1166 */
1167 public function unicodePassword()
1168 {
1169 return 'unicodepwd';
1170 }
1171
1172 /**
1173 * {@inheritdoc}
1174 */
1175 public function updatedAt()
1176 {
1177 return 'whenchanged';
1178 }
1179
1180 /**
1181 * {@inheritdoc}
1182 */
1183 public function url()
1184 {
1185 return 'url';
1186 }
1187
1188 /**
1189 * {@inheritdoc}
1190 */
1191 public function user()
1192 {
1193 return 'user';
1194 }
1195
1196 /**
1197 * {@inheritdoc}
1198 */
1199 public function userAccountControl()
1200 {
1201 return 'useraccountcontrol';
1202 }
1203
1204 /**
1205 * {@inheritdoc}
1206 */
1207 public function userId()
1208 {
1209 return 'uid';
1210 }
1211
1212 /**
1213 * {@inheritdoc}
1214 */
1215 public function userModel()
1216 {
1217 return User::class;
1218 }
1219
1220 /**
1221 * {@inheritdoc}
1222 */
1223 public function userObjectClasses(): array
1224 {
1225 return [
1226 $this->top(),
1227 $this->person(),
1228 $this->organizationalPerson(),
1229 $this->objectClassUser(),
1230 ];
1231 }
1232
1233 /**
1234 * {@inheritdoc}
1235 */
1236 public function userPrincipalName()
1237 {
1238 return 'userprincipalname';
1239 }
1240
1241 /**
1242 * {@inheritdoc}
1243 */
1244 public function userWorkstations()
1245 {
1246 return 'userworkstations';
1247 }
1248
1249 /**
1250 * {@inheritdoc}
1251 */
1252 public function versionNumber()
1253 {
1254 return 'versionnumber';
1255 }
1256
1257 /**
1258 * {@inheritdoc}
1259 */
1260 public function foreignSecurityPrincipalModel()
1261 {
1262 return ForeignSecurityPrincipal::class;
1263 }
1264}