summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source4/ldap_server/ldap_server.c14
-rw-r--r--source4/scripting/libjs/provision.js11
-rw-r--r--source4/setup/phpldapadmin-config.php28
3 files changed, 53 insertions, 0 deletions
diff --git a/source4/ldap_server/ldap_server.c b/source4/ldap_server/ldap_server.c
index a74d002e9b..c165eb698a 100644
--- a/source4/ldap_server/ldap_server.c
+++ b/source4/ldap_server/ldap_server.c
@@ -509,6 +509,7 @@ static NTSTATUS add_socket(struct event_context *event_context,
*/
static void ldapsrv_task_init(struct task_server *task)
{
+ char *ldapi_path;
struct ldapsrv_service *ldap_service;
NTSTATUS status;
const struct model_ops *model_ops;
@@ -556,6 +557,19 @@ static void ldapsrv_task_init(struct task_server *task)
if (!NT_STATUS_IS_OK(status)) goto failed;
}
+ ldapi_path = private_path(ldap_service, global_loadparm, "ldapi");
+ if (!ldapi_path) {
+ goto failed;
+ }
+
+ status = stream_setup_socket(task->event_ctx, model_ops, &ldap_stream_ops,
+ "unix", ldapi_path, NULL, ldap_service);
+ talloc_free(ldapi_path);
+ if (!NT_STATUS_IS_OK(status)) {
+ DEBUG(0,("ldapsrv failed to bind to %s - %s\n",
+ ldapi_path, nt_errstr(status)));
+ }
+
return;
failed:
diff --git a/source4/scripting/libjs/provision.js b/source4/scripting/libjs/provision.js
index 5ca7be99e5..f12c4406ff 100644
--- a/source4/scripting/libjs/provision.js
+++ b/source4/scripting/libjs/provision.js
@@ -162,6 +162,7 @@ function ldb_erase(info, ldb)
/* delete the specials */
ldb.del("@INDEXLIST");
ldb.del("@ATTRIBUTES");
+ ldb.del("@OPTIONS");
ldb.del("@MODULES");
ldb.del("@PARTITION");
ldb.del("@KLUDGEACL");
@@ -393,6 +394,9 @@ function provision_default_paths(subobj)
paths.ldap_config_basedn_ldif = paths.ldapdir + "/" + dnsdomain + "-config.ldif";
paths.ldap_schema_basedn_ldif = paths.ldapdir + "/" + dnsdomain + "-schema.ldif";
+ paths.s4_ldapi_socket = lp.get("private dir") + "/ldapi";
+ paths.phpldapadminconfig = lp.get("private dir") + "/phpldapadmin-config.php";
+
paths.sysvol = lp.get("sysvol", "path");
if (paths.sysvol == undefined) {
@@ -489,6 +493,9 @@ function provision_fix_subobj(subobj, paths)
var ldap_path_list = split("/", paths.ldapdir);
subobj.LDAPI_URI = "ldapi://" + join("%2F", ldap_path_list) + "%2Fldapi";
+ var s4ldap_path_list = split("/", paths.s4_ldapi_socket);
+ subobj.S4_LDAPI_URI = "ldapi://" + join("%2F", s4ldap_path_list);
+
subobj.LDAPMANAGERDN = "cn=Manager," + subobj.DOMAINDN;
subobj.NETLOGONPATH = paths.netlogon;
@@ -794,6 +801,10 @@ function provision(subobj, message, blank, paths, session_info, credentials, lda
assert(commit_ok);
}
+ message("Setting up phpLDAPadmin configuration\n");
+ setup_file("phpldapadmin-config.php", info.message, paths.phpldapadminconfig, subobj);
+ message("Please install the phpLDAPadmin configuration located at " + paths.phpldapadminconfig + " into /etc/phpldapadmin/config.php\n");
+
return true;
}
diff --git a/source4/setup/phpldapadmin-config.php b/source4/setup/phpldapadmin-config.php
new file mode 100644
index 0000000000..5a4c2d7a6b
--- /dev/null
+++ b/source4/setup/phpldapadmin-config.php
@@ -0,0 +1,28 @@
+<?php
+/**
+ * The phpLDAPadmin config file, customised for use with Samba4
+ * This overrides phpLDAPadmin defaults
+ * that are defined in config_default.php.
+ *
+ * DONT change config_default.php, you changes will be lost by the next release
+ * of PLA. Instead change this file - as it will NOT be replaced by a new
+ * version of phpLDAPadmin.
+ */
+
+/*********************************************/
+/* Useful important configuration overrides */
+/*********************************************/
+
+/* phpLDAPadmin can encrypt the content of sensitive cookies if you set this
+ to a big random string. */
+
+$i=0;
+$ldapservers = new LDAPServers;
+
+/* A convenient name that will appear in the tree viewer and throughout
+ phpLDAPadmin to identify this LDAP server to users. */
+$ldapservers->SetValue($i,'server','name','Samba4 LDAP Server');
+$ldapservers->SetValue($i,'server','host','${S4_LDAPI_URI}');
+$ldapservers->SetValue($i,'server','auth_type','session');
+$ldapservers->SetValue($i,'login','attr','dn');
+?>