#!/bin/sh

# Sudoers entries
#----------------

/usr/sbin/addsudo /usr/bin/net app-samba-core
/usr/sbin/addsudo /usr/bin/smbpasswd app-samba-core
/usr/sbin/addsudo /usr/sbin/add-samba-directories app-samba-core
/usr/sbin/addsudo /usr/sbin/app-samba-openldap-initialize app-samba-core
/usr/sbin/addsudo /usr/sbin/app-samba-initialize app-samba-core

# Initialize flag change
#-----------------------

if [ -e /var/clearos/samba/initialized ]; then
    logger -p local6.notice -t installer "app-samba-core - migrating initialization flag"
    touch /var/clearos/samba_common/initialized
    rm /var/clearos/samba/initialized
fi

# LDAP synchronize trigger
#-------------------------

[ -x /usr/sbin/ldap-synchronize ] && /usr/sbin/ldap-synchronize

# idmap changes (again!)
#-----------------------

CHECK=`grep "^idmap[[:space:]]*uid[[:space:]]*=" /etc/samba/smb.conf 2>/dev/null`

if [ -n "$CHECK" ]; then
    logger -p local6.notice -t installer "app-samba-core - deleting deprecated parameter: idmap uid"
    grep -v "^idmap[[:space:]]*uid[[:space:]]*=" /etc/samba/smb.conf > /etc/samba/smb.conf.new
    mv /etc/samba/smb.conf.new /etc/samba/smb.conf
fi

CHECK=`grep "^idmap[[:space:]]*gid[[:space:]]*=" /etc/samba/smb.conf 2>/dev/null`

if [ -n "$CHECK" ]; then
    logger -p local6.notice -t installer "app-samba-core - deleting deprecated parameter: idmap gid"
    grep -v "^idmap[[:space:]]*gid[[:space:]]*=" /etc/samba/smb.conf > /etc/samba/smb.conf.new
    mv /etc/samba/smb.conf.new /etc/samba/smb.conf
fi

# Revert getent behavior back to Samba 4.1 default
#-------------------------------------------------

CHECK=`grep "^winbind expand groups[[:space:]]*=" /etc/samba/smb.conf 2>/dev/null`

if [ -z "$CHECK" ]; then
    logger -p local6.notice -t installer "app-samba-core - reverting winbind expand groups default"
    sed -i -e "s/global\]/global\]\nwinbind expand groups = 1/" /etc/samba/smb.conf
fi

# Disable unix password sync ... always
#--------------------------------------

if [ ! -e /var/clearos/samba/unix_password_sync ]; then
    CHECK=`grep -i "^unix password sync[[:space:]]*=[[:space:]]*Yes" /etc/samba/smb.conf 2>/dev/null`
    if [ -n "$CHECK" ]; then
        logger -p local6.notice -t installer "app-samba-core - disabling unix password sync"
        sed -i -e '/^unix password sync[[:space:]]*=.*/d' /etc/samba/smb.conf
    fi
    touch /var/clearos/samba/unix_password_sync
fi


# Disable old smb ports parameter
#--------------------------------

CHECK=`grep "^smb[[:space:]]*ports" /etc/samba/smb.conf`
if [ -n "$CHECK" ]; then
    logger -p local6.notice -t installer "app-samba-core - disabling explicit smb ports"
    sed -i -e '/^smb[[:space:]]*ports.*/d' /etc/samba/smb.conf
fi

# Run events
#-----------

/var/clearos/events/network_configuration/samba_common
/var/clearos/events/openldap_online/samba >/dev/null
