#!/bin/bash
# $Id: passwd,v 1.2 2004/04/01 19:18:23 finnarne-guest Exp $
# This script changes a users password in ldap - and if smbpasswd exists,
# also update samba password
# use at own risk

BASE="ou=People,dc=skole,dc=skolelinux,dc=no"
URI="ldaps://ldap"

NAME=$1

if [ -z "$NAME" ] ; then 
  echo -e "usage: 
    $0 <username>"
  exit 2
fi

case "$NAME" in 
  admin|smbadmin)
    ENTRY=cn
    ;;
  *) ENTRY=uid ;;
esac


read -p "Enter new password for user $NAME: " -s NEWPASSWD
echo
read -p "Reenter new password: " -s CHKPASSWD
echo

if [ "$CHKPASSWD" != "$NEWPASSWD" ] ; then 
  echo "Sorry, passwords don't match"
  exit 2
fi

RESULT="$(ldappasswd -H $URI -x -s "$NEWPASSWD" -W -D cn=admin,$BASE \
	   $ENTRY=$NAME,$BASE)"

if [ "$RESULT" != "Result: Success (0)" ] ; then 
  echo Could not change ldap passwd for user $NAME
  echo "ldappasswd returned $RESULT"
  exit 2
fi


case "$NAME" in 
  admin|smbadmin)
    ;;
  *) 
		if [ -x /usr/bin/smbpasswd ] ; then 
			/usr/bin/smbpasswd "$NAME" "$NEWPASSWD" >/dev/null
		fi
		;;
esac
