.type = LDB_MAP_CONVERT,
.u = {
.convert = {
- .remote_name = "groupType",
+ .remote_name = "sambaGroupType",
.convert_local = normalise_to_signed32,
.convert_remote = val_copy,
}
}
}
},
+ {
+ .local_name = "unixHomeDirectory",
+ .type = MAP_RENAME,
+ .u = {
+ .rename = {
+ .remote_name = "homeDirectory"
+ }
+ }
+ },
+ {
+ .local_name = "pwdLastSet",
+ .type = MAP_RENAME,
+ .u = {
+ .rename = {
+ .remote_name = "sambaPwdLastSet"
+ }
+ }
+ },
+ {
+ .local_name = "lastLogon",
+ .type = MAP_RENAME,
+ .u = {
+ .rename = {
+ .remote_name = "sambaLogonTime"
+ }
+ }
+ },
+ {
+ .local_name = "lastLogoff",
+ .type = MAP_RENAME,
+ .u = {
+ .rename = {
+ .remote_name = "sambaLogoffTime"
+ }
+ }
+ },
+ {
+ .local_name = "badPwdCount",
+ .type = MAP_RENAME,
+ .u = {
+ .rename = {
+ .remote_name = "sambaBadPasswordCount"
+ }
+ }
+ },
+ {
+ .local_name = "logonHours",
+ .type = MAP_RENAME,
+ .u = {
+ .rename = {
+ .remote_name = "sambaLogonHours"
+ }
+ }
+ },
+ {
+ .local_name = "homeDrive",
+ .type = MAP_RENAME,
+ .u = {
+ .rename = {
+ .remote_name = "sambaHomeDrive"
+ }
+ }
+ },
+ {
+ .local_name = "scriptPath",
+ .type = MAP_RENAME,
+ .u = {
+ .rename = {
+ .remote_name = "sambaLogonScript"
+ }
+ }
+ },
+ {
+ .local_name = "profilePath",
+ .type = MAP_RENAME,
+ .u = {
+ .rename = {
+ .remote_name = "sambaProfilePath"
+ }
+ }
+ },
+ {
+ .local_name = "userWorkstations",
+ .type = MAP_RENAME,
+ .u = {
+ .rename = {
+ .remote_name = "sambaUserWorkstations"
+ }
+ }
+ },
+ {
+ .local_name = "homeDirectory",
+ .type = MAP_RENAME,
+ .u = {
+ .rename = {
+ .remote_name = "sambaHomePath"
+ }
+ }
+ },
+ {
+ .local_name = "nextRid",
+ .type = MAP_RENAME,
+ .u = {
+ .rename = {
+ .remote_name = "sambaNextRid"
+ }
+ }
+ },
+ {
+ .local_name = "privilegeDisplayName",
+ .type = MAP_RENAME,
+ .u = {
+ .rename = {
+ .remote_name = "sambaPrivName"
+ }
+ }
+ },
{
.local_name = "*",
.type = LDB_MAP_KEEP,
}
};
+/* This objectClass conflicts with builtin classes on FDS */
+const struct ldb_map_objectclass nsuniqueid_objectclasses[] =
+{
+ {
+ .local_name = "domain",
+ .remote_name = "samba4Domain"
+ },
+ {
+ .local_name = "rFC822LocalPart",
+ .remote_name = "samba4RFC822LocalPart"
+ },
+ {
+ .local_name = "mailRecipient",
+ .remote_name = "samba4MailRecipient"
+ },
+ {
+ .local_name = "nisMap",
+ .remote_name = "samba4NisMap"
+ },
+ {
+ .local_name = "person",
+ .remote_name = "samba4Person"
+ },
+ {
+ .local_name = "organizationalPerson",
+ .remote_name = "samba4OrganizationalPerson"
+ },
+ {
+ .local_name = "residentialPerson",
+ .remote_name = "samba4ResidentialPerson"
+ },
+ {
+ .local_name = "inetOrgPerson",
+ .remote_name = "samba4InetOrgPerson"
+ },
+ {
+ .local_name = NULL
+ }
+};
+
/* These things do not show up in wildcard searches in OpenLDAP, but
* we need them to show up in the AD-like view */
static const char * const nsuniqueid_wildcard_attributes[] = {
static int nsuniqueid_init(struct ldb_module *module)
{
int ret;
- ret = ldb_map_init(module, nsuniqueid_attributes, NULL, nsuniqueid_wildcard_attributes, "extensibleObject", NULL);
+ ret = ldb_map_init(module, nsuniqueid_attributes, nsuniqueid_objectclasses, nsuniqueid_wildcard_attributes, "extensibleObject", NULL);
if (ret != LDB_SUCCESS)
return ret;
-#Standard OpenLDAP attributes
+#Standard Fedora DS attributes
name
objectClasses
createTimeStamp
cn
dITContentRules
top
+homePostalAddress
+info
+displayName
+employeeNumber
+employeeType
+personalTitle
+co
+userSMIMECertificate
#This should be provided by the LDAP server, only in our schema to permit provision
aci
#Skip ObjectClasses
1.2.840.113556.1.4.904:1.3.6.1.4.1.1466.115.121.1.15
#Presentation Address as Directory String
1.3.6.1.4.1.1466.115.121.1.43:1.3.6.1.4.1.1466.115.121.1.15
+
+#Remap into existing schema
+unixHomeDirectory
+unixHomeDirectory:homeDirectory
+pwdLastSet
+pwdLastSet:sambaPwdLastSet
+lastLogon
+lastLogon:sambaLogonTime
+lastLogoff
+lastLogoff:sambaLogoffTime
+badPwdCount
+badPwdCount:sambaBadPasswordCount
+logonHours
+logonHours:sambaLogonHours
+homeDrive
+homeDrive:sambaHomeDrive
+scriptPath
+scriptPath:sambaLogonScript
+profilePath
+profilePath:sambaProfilePath
+userWorkstations
+userWorkstations:sambaUserWorkstations
+homeDirectory
+homeDirectory:sambaHomePath
+groupType
+groupType:sambaGroupType
+nextRid
+nextRid:sambaNextRid
+privilegeDisplayName
+privilegeDisplayName:sambaPrivName
+
+#Resolve conflicting attributes
+1.2.840.113556.1.4.484:fRSDirectoryFilter-oid
+1.2.840.113556.1.4.483:fRSFileFilter-oid
+1.2.840.113556.1.4.485:fRSUpdateTimeout-oid
+2.16.840.1.113730.3.1.36:thumbnailLogo-oid
+2.16.840.1.113730.3.1.35:thumbnailPhoto-oid
+1.2.840.113556.1.4.481:schemaUpdate-oid
+
+#Resolve conflicting object classes
+domain:samba4Domain
+rFC822LocalPart:samba4RFC822LocalPart
+mailRecipient:samba4MailRecipient
+nisMap:samba4NisMap
+0.9.2342.19200300.100.4.14:samba4RFC822LocalPart-oid
+person:samba4Person
+2.5.6.6:samba4Person-oid
+organizationalPerson:samba4OrganizationalPerson
+2.5.6.7:samba4OrganizationalPerson-oid
+residentialPerson:samba4ResidentialPerson
+2.5.6.10:samba4ResidentialPerson-oid
+inetOrgPerson:samba4InetOrgPerson
+2.16.840.1.113730.3.2.2:samba4InetOrgPerson-oid