1 { lib, php, env, writeText, stdenv, optipng, fetchurl }:
3 config = writeText "config.php" ''
5 $config->custom->appearance['show_clear_password'] = true;
6 $config->custom->appearance['hide_template_warning'] = true;
7 $config->custom->appearance['theme'] = "tango";
8 $config->custom->appearance['minimalMode'] = true;
10 $servers = new Datastore();
12 $servers->newServer('ldap_pla');
13 $servers->setValue('server','name','Immae’s LDAP');
14 $servers->setValue('server','host','ldaps://${env.ldap.host}');
15 $servers->setValue('login','auth_type','cookie');
16 $servers->setValue('login','bind_id','${env.ldap.dn}');
17 $servers->setValue('login','bind_pass','${env.ldap.password}');
18 $servers->setValue('appearance','password_hash','ssha');
19 $servers->setValue('login','attr','uid');
20 $servers->setValue('login','fallback_dn',true);
22 webRoot = stdenv.mkDerivation rec {
24 name = "phpldapadmin-${version}";
26 url = "https://downloads.sourceforge.net/project/phpldapadmin/phpldapadmin-php5/${version}/${name}.tgz";
27 sha256 = "0n7dhp2a7n1krmnik3pb969jynsmhghmxviivnckifkprv1zijmf";
31 ./ldap-disable-mcrypt.patch
33 ./ldap-sort-in-templates.patch
34 ./ldap-align-button.patch
36 buildInputs = [ optipng ];
38 find -name '*.png' -exec optipng -quiet -force -fix {} \;
42 ln -sf ${config} $out/config/config.php
48 modules = [ "proxy_fcgi" ];
49 webappName = "tools_ldap";
50 root = "/run/current-system/webapps/${webappName}";
54 DirectoryIndex index.php
56 SetHandler "proxy:unix:${phpFpm.socket}|fcgi://localhost"
65 basedir = builtins.concatStringsSep ":" [ webRoot config ];
66 socket = "/var/run/phpfpm/ldap.sock";
70 group = ${apache.group}
71 listen.owner = ${apache.user}
72 listen.group = ${apache.group}
75 pm.process_idle_timeout = 60
77 ; Needed to avoid clashes in browser cookies (same domain)
78 php_value[session.name] = LdapPHPSESSID
79 php_admin_value[open_basedir] = "${basedir}:/tmp"