summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTimothy Pearson <kb9vqf@pearsoncomputing.net>2025-10-05 14:18:01 -0500
committerTimothy Pearson <kb9vqf@pearsoncomputing.net>2025-10-05 14:48:40 -0500
commita87563b17109d4eb2a07ee45e1ddbfaea6252c55 (patch)
tree24b87ef18a79ea3d9a6d447d34538a0768ca987a
parent0d53fc4ef4c7cf3e81058dbfec7c2804926745d8 (diff)
downloadkcmldapcontroller-a87563b17109d4eb2a07ee45e1ddbfaea6252c55.tar.gz
kcmldapcontroller-a87563b17109d4eb2a07ee45e1ddbfaea6252c55.zip
Add memberOf overlay and enable
Signed-off-by: Timothy Pearson <kb9vqf@pearsoncomputing.net>
-rw-r--r--confskel/openldap/ldif/moduleConfig.ldif2
-rw-r--r--confskel/openldap/ldif/olcDatabaseConfigMemberOf.ldif18
-rw-r--r--src/ldapcontroller.cpp4
3 files changed, 24 insertions, 0 deletions
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;