Index: installers/debian/openacs/postinst =================================================================== RCS file: /usr/local/cvsroot/installers/debian/openacs/postinst,v diff -u -r1.2 -r1.3 --- installers/debian/openacs/postinst 6 Aug 2008 06:08:24 -0000 1.2 +++ installers/debian/openacs/postinst 18 Sep 2008 17:42:25 -0000 1.3 @@ -39,6 +39,13 @@ db_get openacs/dbu_password dbu_password="$RET" + + db_get openacs/pg_grant_access + if [ ! -z "$RET" ]; then + grant_access="$RET" + else + grant_access="false" + fi } db_not_installed() { @@ -85,7 +92,7 @@ dbadmin=$dba_name dbadmpass=$dba_password dbuser=$dbu_name - dbpass=$dbu_password + dbpass=$dbu_password . /usr/share/wwwconfig-common/pgsql-createuser.sh if [ "$status" = "error" ] @@ -100,18 +107,46 @@ echo $error fi + # Modify the pg_hba.conf to grant openacs user access to postgresql + # 1- Do we want to do that? + if [ "$grant_access" = true ]; then + + # 2- Where is the pg_hba.conf from this database instance? + dbuser=$dba_name + dbpass=$dba_password + . /usr/share/wwwconfig-common/pgsql.get + pg_hba_file=$($pgsqlcmd -c "SELECT * from pg_settings where name='hba_file';" 2>/dev/null | grep hba | cut -d\| -f2) + pg_version=$(echo "$pg_hba_file" | cut -d\/ -f4) + if [ "$status" = "error" ] + then + err=1 + echo $error + else + # 3- Modify the file + # Select connection method + if [ "A$dbu_password" != "A" ]; then + # No Blank Password + pg_conn_method="md5" + else + # Blank Password + pg_conn_method="trust" + fi + # Delete all lines between ## Openacs ... ## and ########### from previous configurations. + # Insert connection line after the first local connection line (the postgres user connection line). + sed -i "/^## Openacs package debconf changes (DO NOT EDIT BYHAND) ##/,/^##########################################################/d;1,/^local/{ + /^local/a ## Openacs package debconf changes (DO NOT EDIT BYHAND) ##\nlocal openacs $dbu_name $pg_conn_method\n########################################################## +} " $pg_hba_file + + # 4-Reload postgresql conf + /etc/init.d/postgresql-"$pg_version" reload + fi + fi + # Modify config.tcl with debconf values - + dbuser=$dbu_name + dbpass=$dbu_password sed -i "/^ set db_host/,/^ set db_user/d;s/## Debconf changes (DO NOT EDIT BYHAND) ##/&\n set db_host $dbserver\n set db_password \"$dbpass\"\n set db_port \"5432\"\n set db_user $dbuser/" /etc/openacs/config.tcl - # Install tsearch2 - #. /usr/share/wwwconfig-common/pgsql-exec.sh - #if [ "$status" = "error" ] - #then - # err=1 - # echo $error - #fi - # Install plpgsql on database and enable compatibility options dbuser=$dba_name dbpass=$dba_password