diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/60-ldap | 18 | ||||
-rw-r--r-- | lib/60-postgres | 24 |
2 files changed, 38 insertions, 4 deletions
diff --git a/lib/60-ldap b/lib/60-ldap index d262849..249fed0 100644 --- a/lib/60-ldap +++ b/lib/60-ldap @@ -11,7 +11,7 @@ ldap_add(){ if [ "${BOXCONF_LDAP_SASL:-}" = true ]; then ldapadd -Q "$@" else - ldapadd -ZZ -D "$boxconf_dn" -w "$boxconf_password" "$@" + ldapadd -ZZ -x -D "$boxconf_dn" -w "$boxconf_password" "$@" fi } fi @@ -25,7 +25,7 @@ ldap_modify(){ if [ "${BOXCONF_LDAP_SASL:-}" = true ]; then ldapmodify -Q "$@" else - ldapmodify -ZZ -D "$boxconf_dn" -w "$boxconf_password" "$@" + ldapmodify -ZZ -x -D "$boxconf_dn" -w "$boxconf_password" "$@" fi } } @@ -36,7 +36,7 @@ ldap_delete(){ if [ "${BOXCONF_LDAP_SASL:-}" = true ]; then ldapdelete -Q "$@" else - ldapdelete -ZZ -D "$boxconf_dn" -w "$boxconf_password" "$@" + ldapdelete -ZZ -x -D "$boxconf_dn" -w "$boxconf_password" "$@" fi } @@ -46,7 +46,7 @@ ldap_search(){ if [ "${BOXCONF_LDAP_SASL:-}" = true ]; then ldapsearch -QLLL "$@" else - ldapsearch -o ldif_wrap=no -LLLZZ -D "$boxconf_dn" -w "$boxconf_password" "$@" + ldapsearch -o ldif_wrap=no -x -LLLZZ -D "$boxconf_dn" -w "$boxconf_password" "$@" fi } @@ -86,3 +86,13 @@ ldap_dn_exists(){ # $1 = DN ldap_search -s base -b "$1" dn > /dev/null 2>&1 } + +ldap_passwd(){ + # Set the userPassword attribute on a DN. + # $1 = DN, $2 = password + if [ "${BOXCONF_LDAP_SASL:-}" = true ]; then + ldappasswd -Q -s "$2" "$1" + else + ldappasswd -ZZ -x -D "$boxconf_dn" -w "$boxconf_password" -s "$2" "$1" + fi +} diff --git a/lib/60-postgres b/lib/60-postgres new file mode 100644 index 0000000..af37c27 --- /dev/null +++ b/lib/60-postgres @@ -0,0 +1,24 @@ +#!/bin/sh + +postgres_run(){ + PGSSLMODE=require PGPASSWORD="$boxconf_password" psql \ + --no-align \ + --echo-all \ + --tuples-only \ + --username="$boxconf_username" \ + -v ON_ERROR_STOP=1 \ + "$@" +} +postgres_create_role(){ + # $1 = postgres_host, $2 = username + cat <<EOF | postgres_run -h "${1}" -d postgres +SELECT 'CREATE ROLE "${2}" WITH LOGIN' WHERE NOT EXISTS (SELECT FROM pg_roles WHERE rolname = '${2}')\\gexec +EOF +} + +postgres_create_database(){ + # $1 = postgres_host, $2 = dbname, $3 = owner + cat <<EOF | postgres_run -h "${1}" -d postgres +SELECT 'CREATE DATABASE "${2}" OWNER "${3:-postgres}"' WHERE NOT EXISTS (SELECT FROM pg_database WHERE datname = '${2}')\\gexec +EOF +} |