File: postinst

package info (click to toggle)
phpldapadmin 1.2.6.7-4
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 5,528 kB
  • sloc: php: 17,684; javascript: 5,299; xml: 1,498; sh: 379; python: 148; makefile: 23
file content (138 lines) | stat: -rw-r--r-- 5,446 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
#!/bin/sh -e

CONFFILE="/etc/phpldapadmin/config.php"
TEMPLATES="/etc/phpldapadmin/templates"
HOOKS="/etc/phpldapadmin/hooks"
USER_GROUP="root:www-data"

if [ -d $HOOKS ]; then
    chown -R $USER_GROUP $HOOKS
    chmod -R 0644 $HOOKS
    chmod 0755 $HOOKS $HOOKS/classes $HOOKS/functions
fi

if [ -d $TEMPLATES ]; then
    chown -R $USER_GROUP $TEMPLATES
    chmod -R 0644 $TEMPLATES
    chmod 0755 $TEMPLATES $TEMPLATES/creation $TEMPLATES/modification
fi

. /usr/share/debconf/confmodule
db_version 2.0 || [ $? -lt 30 ]

if [ "$1" = "configure" ]; then

	tempfile=`mktemp`
	cp  /usr/share/phpldapadmin/config/config.php.example ${tempfile}

	db_get phpldapadmin/ldap-server || true
	ldapserver="$RET"
	sed -i -e "s|// \$servers->setValue('server','host','127.0.0.1');|\$servers->setValue('server','host','$ldapserver');|g" ${tempfile}

	db_get phpldapadmin/ldap-tls || true
	tls="$RET"
	if [ "$tls" = "true" ]; then
		sed -i -e "s|// \$servers->setValue('server','port',389);|\$servers->setValue('server','port',636);|g" ${tempfile}
		sed -i -e "s|// \$servers->setValue('server','tls',false);|\$servers->setValue('server','tls',true);|g" ${tempfile}
	fi

	db_get phpldapadmin/ldap-basedn || true
	basedn="$RET"
	sed -i -e "s|// \$servers->setValue('server','base',array(''));|\$servers->setValue('server','base',array('$basedn'));|g" ${tempfile}

	db_get phpldapadmin/ldap-authtype || true
	authtype="$RET"
	sed -i -e "s|// \$servers->setValue('login','auth_type','session');|\$servers->setValue('login','auth_type','$authtype');|g" ${tempfile}

	db_get phpldapadmin/ldap-binddn || true
	binddn="$RET"
	sed -i -e "s|// \$servers->setValue('login','bind_id','');|\$servers->setValue('login','bind_id','$binddn');|g" ${tempfile}

	if [ "$authtype" = "config" ]; then
		db_get phpldapadmin/ldap-bindpw || true
		bindpw="$RET"
		sed -i -e "s|// \$servers->setValue('login','bind_pass','');|\$servers->setValue('login','bind_pass','$bindpw');|g" ${tempfile}
	fi

	chown root:www-data ${tempfile}
	chmod 0644 ${tempfile}

	ucf --debconf-ok ${tempfile} $CONFFILE
	ucfr phpldapadmin $CONFFILE

	if [ ! -e /usr/share/phpldapadmin/config/config.php ]; then
		ln -s $CONFFILE /usr/share/phpldapadmin/config/config.php
	fi

	rm -f ${tempfile}

    # Autoconfiguration for apache*
    db_get phpldapadmin/reconfigure-webserver || true
    webservers="$RET"
    restart=""

    for webserver in $webservers; do
        webserver=${webserver%,}
        test -x /usr/sbin/$webserver || continue

        case "$webserver" in
            apache|apache-perl|apache-ssl)
                if grep "^Include /etc/phpldapadmin/apache.conf" /etc/$webserver/httpd.conf > /dev/null 2>&1; then
                    mv -f /etc/$webserver/httpd.conf /etc/$webserver/httpd.conf.old.phpldapadmin
                    grep -v "^Include /etc/phpldapadmin/apache.conf" /etc/$webserver/httpd.conf.old.phpldapadmin \
                        > /etc/$webserver/httpd.conf
                fi
                if ! grep "^Include /etc/$webserver/conf.d" /etc/$webserver/httpd.conf > /dev/null 2>&1; then
                    cp -f /etc/$webserver/httpd.conf /etc/$webserver/httpd.conf.old.phpldapadmin
                    echo "Include /etc/$webserver/conf.d" >> /etc/$webserver/httpd.conf
                fi
                if [ -f /etc/$webserver/httpd.conf.old.phpldapadmin ] && [ ! -f /etc/$webserver/httpd.conf.old ]; then
                    mv -f /etc/$webserver/httpd.conf.old.phpldapadmin /etc/$webserver/httpd.conf.old
                fi
                mkdir -p /etc/$webserver/conf.d
                if [ ! -f /etc/$webserver/conf.d/phpldapadmin ] && [ ! -h /etc/$webserver/conf.d/phpldapadmin ]; then
                    ln -s /etc/phpldapadmin/apache.conf /etc/$webserver/conf.d/phpldapadmin
	            restart="$restart $webserver"
                fi
                ;;
            apache2)
                if [ ! -f /etc/$webserver/conf-available/phpldapadmin.conf ] && [ ! -h /etc/$webserver/conf-available/phpldapadmin.conf ]; then
                    mkdir -p /etc/$webserver/conf-available
                    ln -s /etc/phpldapadmin/apache.conf /etc/$webserver/conf-available/phpldapadmin.conf
                    if [ -e /usr/share/apache2/apache2-maintscript-helper ] ; then
                        . /usr/share/apache2/apache2-maintscript-helper
                        apache2_invoke enconf phpldapadmin.conf || exit $?
                    fi
                fi
                ;;
        esac

    done

    db_get phpldapadmin/restart-webserver || true
	res="$RET"
	db_stop || true
    if [ "$res" = "true" ]; then
        for webserver in $restart; do
            webserver=${webserver%,}
            # Reload webserver in any case, configuration might have changed
            # Redirection of 3 is needed because Debconf uses it and it might
            # be inherited by webserver. See bug #446324.
            if [ -f /etc/init.d/$webserver ] ; then
                if which invoke-rc.d > /dev/null ; then
                    if invoke-rc.d $webserver status > /dev/null 2>&1 ; then
                        invoke-rc.d $webserver reload 3>/dev/null || true
                    fi
                else
                    if /etc/init.d/$webserver status > /dev/null 2>&1 ; then
                        /etc/init.d/$webserver reload 3>/dev/null || true
                    fi
                fi
            fi
        done
    fi
fi

#DEBHELPER#

exit 0