mirror of
https://github.com/YunoHost/yunohost.git
synced 2024-09-03 20:06:10 +02:00
[fix] Compare current with new LDAP backend and process as needed in conf_regen
This commit is contained in:
parent
13a649b6ef
commit
0d30ef6277
1 changed files with 19 additions and 14 deletions
|
@ -23,25 +23,30 @@ do_pre_regen() {
|
||||||
}
|
}
|
||||||
|
|
||||||
do_post_regen() {
|
do_post_regen() {
|
||||||
# retrieve current backend
|
regen_conf_files=$1
|
||||||
#backend=$(sudo slapcat -n 0 | sed -n 's/^dn: olcDatabase={1}\(.*\),cn=config$/\1/p')
|
|
||||||
backend=$(grep '^database' /etc/ldap/slapd.conf | awk '{print $2}')
|
|
||||||
|
|
||||||
# save current database in case of a backend change
|
|
||||||
backend_change=0
|
|
||||||
backup_dir="/var/backups/dc=yunohost,dc=org-${backend}-$(date +%s)"
|
|
||||||
if [[ -n "$backend" && "$backend" != "mdb" ]]; then
|
|
||||||
backend_change=1
|
|
||||||
sudo mkdir -p "$backup_dir"
|
|
||||||
sudo slapcat -b dc=yunohost,dc=org \
|
|
||||||
-l "${backup_dir}/dc=yunohost-dc=org.ldif"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# fix some permissions
|
# fix some permissions
|
||||||
sudo chown root:openldap /etc/ldap/slapd.conf
|
sudo chown root:openldap /etc/ldap/slapd.conf
|
||||||
sudo chown -R openldap:openldap /etc/ldap/schema/
|
sudo chown -R openldap:openldap /etc/ldap/schema/
|
||||||
sudo chown -R openldap:openldap /etc/ldap/slapd.d/
|
sudo chown -R openldap:openldap /etc/ldap/slapd.d/
|
||||||
|
|
||||||
|
[ -z "$regen_conf_files" ] && exit 0
|
||||||
|
|
||||||
|
# retrieve current and new backends
|
||||||
|
curr_backend=$(sudo slapcat -n 0 \
|
||||||
|
| sed -n 's/^dn: olcDatabase={1}\(.*\),cn=config$/\1/p')
|
||||||
|
new_backend=$(grep '^database' /etc/ldap/slapd.conf | awk '{print $2}')
|
||||||
|
|
||||||
|
# save current database in case of a backend change
|
||||||
|
backend_change=0
|
||||||
|
backup_dir="/var/backups/dc=yunohost,dc=org-${curr_backend}-$(date +%s)"
|
||||||
|
if [[ -n "$curr_backend" && "$curr_backend" != "$new_backend" ]]; then
|
||||||
|
backend_change=1
|
||||||
|
sudo mkdir -p "$backup_dir"
|
||||||
|
sudo slapcat -b dc=yunohost,dc=org \
|
||||||
|
-l "${backup_dir}/dc=yunohost-dc=org.ldif"
|
||||||
|
fi
|
||||||
|
|
||||||
# check the slapd config file at first
|
# check the slapd config file at first
|
||||||
sudo slaptest -Q -u -f /etc/ldap/slapd.conf
|
sudo slaptest -Q -u -f /etc/ldap/slapd.conf
|
||||||
|
|
||||||
|
@ -73,7 +78,7 @@ case "$1" in
|
||||||
do_pre_regen $3
|
do_pre_regen $3
|
||||||
;;
|
;;
|
||||||
post)
|
post)
|
||||||
do_post_regen
|
do_post_regen $3
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
echo "hook called with unknown argument \`$1'" >&2
|
echo "hook called with unknown argument \`$1'" >&2
|
||||||
|
|
Loading…
Add table
Reference in a new issue