From a87563b17109d4eb2a07ee45e1ddbfaea6252c55 Mon Sep 17 00:00:00 2001 From: Timothy Pearson Date: Sun, 5 Oct 2025 14:18:01 -0500 Subject: Add memberOf overlay and enable Signed-off-by: Timothy Pearson --- confskel/openldap/ldif/moduleConfig.ldif | 2 ++ confskel/openldap/ldif/olcDatabaseConfigMemberOf.ldif | 18 ++++++++++++++++++ src/ldapcontroller.cpp | 4 ++++ 3 files changed, 24 insertions(+) create mode 100644 confskel/openldap/ldif/olcDatabaseConfigMemberOf.ldif diff --git a/confskel/openldap/ldif/moduleConfig.ldif b/confskel/openldap/ldif/moduleConfig.ldif index d125f9d..4988352 100644 --- a/confskel/openldap/ldif/moduleConfig.ldif +++ b/confskel/openldap/ldif/moduleConfig.ldif @@ -8,6 +8,8 @@ olcModuleLoad: {2}back_monitor olcModuleLoad: {3}auditlog olcModuleLoad: {4}unique olcModuleLoad: {5}ppolicy +olcModuleLoad: {6}memberof +olcModuleLoad: {7}refint structuralObjectClass: olcModuleList creatorsName: cn=config createTimestamp: @@@TIMESTAMP@@@Z diff --git a/confskel/openldap/ldif/olcDatabaseConfigMemberOf.ldif b/confskel/openldap/ldif/olcDatabaseConfigMemberOf.ldif new file mode 100644 index 0000000..ae14505 --- /dev/null +++ b/confskel/openldap/ldif/olcDatabaseConfigMemberOf.ldif @@ -0,0 +1,18 @@ +dn: olcOverlay={@@@LDIFSCHEMANUMBER@@@}memberof +objectClass: olcMemberOfConfig +objectClass: olcOverlayConfig +objectClass: olcConfig +objectClass: top +olcOverlay: {@@@LDIFSCHEMANUMBER@@@}memberof +olcMemberOfDangling: ignore +olcMemberOfRefInt: TRUE +olcMemberOfGroupOC: groupOfNames +olcMemberOfMemberAD: member +olcMemberOfMemberOfAD: memberOf +structuralObjectClass: olcMemberOfConfig +creatorsName: cn=config +createTimestamp: @@@TIMESTAMP@@@Z +entryCSN: @@@TIMESTAMP@@@.@@@TIMESTAMP_MICROSECONDS@@@Z#000000#000#000000 +entryUUID: @@@ENTRYUUID@@@ +modifiersName: cn=config +modifyTimestamp: @@@TIMESTAMP@@@Z diff --git a/src/ldapcontroller.cpp b/src/ldapcontroller.cpp index 300c3fa..9d0922d 100644 --- a/src/ldapcontroller.cpp +++ b/src/ldapcontroller.cpp @@ -1818,6 +1818,7 @@ int LDAPController::createNewLDAPRealm(TQWidget* dialogparent, LDAPRealmConfig r Q_UNUSED(adminRealm) int ldifSchemaNumber; + int ldifConfigSchemaNumber; ProcessingDialog pdialog(dialogparent); pdialog.setStatusMessage(i18n("Loading data for realm deployment...")); @@ -1942,6 +1943,9 @@ int LDAPController::createNewLDAPRealm(TQWidget* dialogparent, LDAPRealmConfig r replacePlaceholdersInFile(templateDir + "openldap/ldif/moduleConfig.ldif", destDir + "ldap/slapd.d/cn=config/" + TQString("cn=module{%1}.ldif").arg(ldifSchemaNumber), realmconfig, adminUserName, adminGroupName, machineAdminGroupName, standardUserGroupName, adminPassword, rootUserName, rootPassword, ldifSchemaNumber, slapd_uid, slapd_gid); ldifSchemaNumber = 1; replacePlaceholdersInFile(templateDir + "openldap/ldif/olcDatabase.ldif", destDir + "ldap/slapd.d/cn=config/" + TQString("olcDatabase={%1}mdb.ldif").arg(ldifSchemaNumber), realmconfig, adminUserName, adminGroupName, machineAdminGroupName, standardUserGroupName, adminPassword, rootUserName, rootPassword, ldifSchemaNumber, slapd_uid, slapd_gid); + ldifConfigSchemaNumber = 0; + mkdir(TQString(destDir + "ldap/slapd.d/cn=config/olcDatabase={%1}mdb").arg(ldifSchemaNumber).ascii(), S_IRUSR|S_IWUSR|S_IXUSR); + replacePlaceholdersInFile(templateDir + "openldap/ldif/olcDatabaseConfigMemberOf.ldif", destDir + "ldap/slapd.d/cn=config/olcDatabase={%1}mdb/" + TQString("olcOverlay={%2}memberof.ldif").arg(ldifSchemaNumber).arg(ldifConfigSchemaNumber), realmconfig, adminUserName, adminGroupName, machineAdminGroupName, standardUserGroupName, adminPassword, rootUserName, rootPassword, ldifConfigSchemaNumber, slapd_uid, slapd_gid); // Schema files ldifSchemaNumber = 0; -- cgit v1.2.3