#!/bin/bash

database=dosis
user=shawn
owner=dosis
psql=psql
psqlargs=" -U $owner --quiet"

###################################################################
#
# File: setPermissions
#
# Purpose: Runs GRANT for database tables to user
#
# Usage: setPermissions
#
###################################################################

function setPermissions ()
{
user=$1

tablesRaw=`${psql} ${psqlargs} ${database} <<-EOF | grep table | cut -f2 -d'|'
	SET search_path TO public,labeller,rxtranslator,interface;
	\dt
EOF`

tables=$(echo ${tablesRaw} | sed 's/ /,/g')

${psql} -e ${psqlargs} ${database} <<-EOF
		SET search_path TO public,labeller,rxtranslator,interface;
		GRANT ALL ON ${tables} TO ${user};
EOF


viewsRaw=`${psql} ${psqlargs} ${database} <<-EOF | grep view | cut -f2 -d'|'
	SET search_path TO public,labeller,rxtranslator,interface;
	\dv
EOF`

views=$(echo ${viewsRaw} | sed 's/ /,/g')

${psql} -e ${psqlargs} ${database} <<-EOF
		SET search_path TO public,labeller,rxtranslator,interface;
		GRANT ALL ON ${views} TO ${user};
EOF

sequencesRaw=`${psql} ${psqlargs} ${database} <<-EOF | grep sequence | cut -f2 -d'|'
	SET search_path TO public,labeller,rxtranslator,interface;
	\ds
EOF`

sequences=$(echo ${sequencesRaw} | sed 's/ /,/g')
${psql} -e ${psqlargs} ${database} <<-EOF
		SET search_path TO public,labeller,rxtranslator,interface;
		GRANT ALL ON ${sequences} TO ${user};
EOF

${psql} -e ${psqlargs} ${database} <<-EOF
		GRANT ALL ON SCHEMA labeller TO ${user};
		GRANT ALL ON SCHEMA rxtranslator TO ${user};
		GRANT ALL ON SCHEMA interface TO ${user};
EOF
}
