@@ -5,12 +5,6 @@ FIRST_START_DONE="/etc/docker-phpldapadmin-first-start-done"
55# container first start
66if [ ! -e " $FIRST_START_DONE " ]; then
77
8- # phpLDAPadmin directory is empty, we use the bootstrap
9- if [ ! " $( ls -A /var/www/phpldapadmin) " ]; then
10- cp -R /var/www/phpldapadmin_bootstrap/* /var/www/phpldapadmin
11- rm -rf /var/www/phpldapadmin_bootstrap
12- fi
13-
148 # create phpLDAPadmin vhost
159 if [ " ${HTTPS,,} " == " true" ]; then
1610
@@ -28,98 +22,105 @@ if [ ! -e "$FIRST_START_DONE" ]; then
2822 a2ensite phpldapadmin
2923 fi
3024
31- get_salt () {
32- salt=$( < /dev/urandom tr -dc ' 1324567890#<>,()*.^@$% =-_~;:|{}[]+!`azertyuiopqsdfghjklmwxcvbnAZERTYUIOPQSDFGHJKLMWXCVBN' | head -c64 | tr -d ' \\' )
33- }
3425
35- # phpLDAPadmin cookie secret
36- get_salt
37- sed -i " s/blowfish'] = '/blowfish'] = '${salt} /g" /osixia/phpldapadmin/config.php
26+ # phpLDAPadmin directory is empty, we use the bootstrap
27+ if [ ! " $( ls -A /var/www/phpldapadmin) " ]; then
28+ cp -R /var/www/phpldapadmin_bootstrap/* /var/www/phpldapadmin
29+ rm -rf /var/www/phpldapadmin_bootstrap
3830
39- print_by_php_type () {
31+ get_salt () {
32+ salt=$( < /dev/urandom tr -dc ' 1324567890#<>,()*.^@$% =-_~;:|{}[]+!`azertyuiopqsdfghjklmwxcvbnAZERTYUIOPQSDFGHJKLMWXCVBN' | head -c64 | tr -d ' \\' )
33+ }
4034
41- if [ " $1 " == " True" ]; then
42- echo " true"
43- elif [ " $1 " == " False" ]; then
44- echo " false"
45- elif [[ " $1 " == array\(\' * ]]; then
46- echo " $1 "
47- else
48- echo " '$1 '"
49- fi
50- }
35+ # phpLDAPadmin cookie secret
36+ get_salt
37+ sed -i " s/blowfish'] = '/blowfish'] = '${salt} /g" /var/www/phpldapadmin/config/config.php
5138
52- # phpLDAPadmin servers config
53- host_infos () {
39+ print_by_php_type () {
5440
55- local to_print=$1
56- local infos=(${! 2} )
41+ if [ " $1 " == " True" ]; then
42+ echo " true"
43+ elif [ " $1 " == " False" ]; then
44+ echo " false"
45+ elif [[ " $1 " == array\(\' * ]]; then
46+ echo " $1 "
47+ else
48+ echo " '$1 '"
49+ fi
50+ }
5751
58- for info in " ${infos[@]} "
59- do
60- host_infos_value " $to_print " " $info "
61- done
62- }
52+ # phpLDAPadmin servers config
53+ host_infos () {
6354
64- host_infos_value (){
55+ local to_print=$1
56+ local infos=(${! 2} )
6557
66- local to_print=$1
67- local info_key_value=(${! 2} )
58+ for info in " ${infos[@]} "
59+ do
60+ host_infos_value " $to_print " " $info "
61+ done
62+ }
6863
69- local key=${! info_key_value[0]}
70- local value=(${! info_key_value[1]} )
64+ host_infos_value (){
7165
72- local value_of_value_table=(${! value} )
66+ local to_print=$1
67+ local info_key_value=(${! 2} )
7368
74- # it's a table of values
75- if [ " ${# value[@]} " -gt " 1" ]; then
76- host_infos " $to_print '$key '," " ${info_key_value[1]} "
69+ local key=${! info_key_value[0]}
70+ local value=(${! info_key_value[1]} )
7771
78- # the value of value is a table
79- elif [ " ${# value_of_value_table[@]} " -gt " 1" ]; then
80- host_infos_value " $to_print '$key '," " $value "
72+ local value_of_value_table=(${! value} )
8173
82- # the value contain a not empty variable
83- elif [ -n " ${! value} " ]; then
84- local php_value=$( print_by_php_type ${! value} )
85- echo " \$ servers->setValue($to_print '$key ',$php_value );" >> /osixia/phpldapadmin/config.php
74+ # it's a table of values
75+ if [ " ${# value[@]} " -gt " 1" ]; then
76+ host_infos " $to_print '$key '," " ${info_key_value[1]} "
8677
87- # it's just a not empty value
88- elif [ -n " $value " ]; then
89- local php_value=$( print_by_php_type $value )
90- echo " \$ servers->setValue($to_print '$key ',$php_value );" >> /osixia/phpldapadmin/config.php
91- fi
92- }
93-
94- # phpLDAPadmin config
95- LDAP_HOSTS=($LDAP_HOSTS )
96- for host in " ${LDAP_HOSTS[@]} "
97- do
98-
99- # host var contain a variable name, we access to the variable value and cast it to a table
100- infos=(${! host} )
101-
102- echo " \$ servers->newServer('ldap_pla');" >> /osixia/phpldapadmin/config.php
103-
104- # it's a table of infos
105- if [ " ${# infos[@]} " -gt " 1" ]; then
106- echo " \$ servers->setValue('server','name','${! infos[0]} ');" >> /osixia/phpldapadmin/config.php
107- echo " \$ servers->setValue('server','host','${! infos[0]} ');" >> /osixia/phpldapadmin/config.php
108- host_infos " " ${infos[1]}
109-
110- # it's just a host name
111- else
112- echo " \$ servers->setValue('server','name','${! host} ');" >> /osixia/phpldapadmin/config.php
113- echo " \$ servers->setValue('server','host','${! host} ');" >> /osixia/phpldapadmin/config.php
114- fi
115- done
78+ # the value of value is a table
79+ elif [ " ${# value_of_value_table[@]} " -gt " 1" ]; then
80+ host_infos_value " $to_print '$key '," " $value "
81+
82+ # the value contain a not empty variable
83+ elif [ -n " ${! value} " ]; then
84+ local php_value=$( print_by_php_type ${! value} )
85+ echo " \$ servers->setValue($to_print '$key ',$php_value );" >> /var/www/phpldapadmin/config/config.php
11686
87+ # it's just a not empty value
88+ elif [ -n " $value " ]; then
89+ local php_value=$( print_by_php_type $value )
90+ echo " \$ servers->setValue($to_print '$key ',$php_value );" >> /var/www/phpldapadmin/config/config.php
91+ fi
92+ }
93+
94+ # phpLDAPadmin config
95+ LDAP_HOSTS=($LDAP_HOSTS )
96+ for host in " ${LDAP_HOSTS[@]} "
97+ do
98+
99+ # host var contain a variable name, we access to the variable value and cast it to a table
100+ infos=(${! host} )
101+
102+ echo " \$ servers->newServer('ldap_pla');" >> /var/www/phpldapadmin/config/config.php
103+
104+ # it's a table of infos
105+ if [ " ${# infos[@]} " -gt " 1" ]; then
106+ echo " \$ servers->setValue('server','name','${! infos[0]} ');" >> /var/www/phpldapadmin/config/config.php
107+ echo " \$ servers->setValue('server','host','${! infos[0]} ');" >> /var/www/phpldapadmin/config/config.php
108+ host_infos " " ${infos[1]}
109+
110+ # it's just a host name
111+ else
112+ echo " \$ servers->setValue('server','name','${! host} ');" >> /var/www/phpldapadmin/config/config.php
113+ echo " \$ servers->setValue('server','host','${! host} ');" >> /var/www/phpldapadmin/config/config.php
114+ fi
115+ done
116+
117+ fi
117118
118119 # Fix file permission
119120 find /var/www/ -type d -exec chmod 755 {} \;
120121 find /var/www/ -type f -exec chmod 644 {} \;
121- chmod 400 /osixia/ phpldapadmin/config.php
122- chown www-data:www-data -R /osixia/ phpldapadmin/config.php
122+ chmod 400 /var/www/ phpldapadmin/config /config.php
123+ chown www-data:www-data -R /var/www/ phpldapadmin/config /config.php
123124 chown www-data:www-data -R /var/www
124125
125126 touch $FIRST_START_DONE
0 commit comments