#! /bin/sh
# Xterminals - run as root to replace session

# This script gives access to floppy, cdrom and soundcard on the 
# X terminal.
# As an added feature, it can also create temporary accounts 
# for users so that the environment is reset at each session.

export PATH="$PATH:/usr/X11R6/bin"
xhost `hostname`
TERMIP=`echo ${DISPLAY}|cut -f1 -d:`
DRIVES=/tmp/drives/$TERMIP
ARTSPORT=10000

#Make sure GUESTUSER variable is empty
unset GUESTUSER

#Check if guest user
if [ "x$USER" = "xsemo" ]; then
  GUESTUSER=$USER
fi
if [ "x$USER" = "xcje" ]; then
  GUESTUSER=$USER
fi

#If guest user, create temporary account
if [ -n "$GUESTUSER" ];then
  TMPUSER=/home/xterminals/users
  mkdir -p $TMPUSER
  cd $TMPUSER
  NEWUSER=`mktemp ${GUESTUSER}_XXXXXX`
  rm -f $NEWUSER
  NEWUSER=`echo $NEWUSER|tr '[A-Z]' '[a-z]'`
  useradd -d $TMPUSER/$NEWUSER $NEWUSER
  chown root.root /tmp/.ICE-unix
  USER=$NEWUSER
  HOME=$TMPUSER/$USER
fi

rm -f $HOME/local
umount -l $DRIVES 2>/dev/null


if [ -n "${TERMIP}" ];then
  KDE=$HOME/.kde
  mkdir -p $KDE/share/config
  echo "[Arts]" > $KDE/share/config/kcmartsrc
  echo "StartServer=false" >> $KDE/share/config/kcmartsrc
  chown $USER.$USER $KDE -R
  mkdir -p $DRIVES
  mount -t smbfs -o dmask=700,uid=$USER,rw,guest //$TERMIP/drives $DRIVES
  ln -s $DRIVES $HOME/local
  #mount|xmessage -file -
  KEYS=/home/xterminals/keys
  echo "\n\n" |ssh-keygen -t rsa -f $KEYS/$TERMIP >/dev/null 2>/dev/null
  mv $KEYS/$TERMIP.pub $KEYS/key.pub\$\$IP=${TERMIP}\$\$
  chown $USER.$USER $KEYS/$TERMIP
  echo "export ARTS_SERVER=$TERMIP:$ARTSPORT" > $HOME/.xtermrc
fi

#sessreg -a -l $DISPLAY $USER
echo "export XAUTHORITY=$HOME/.Xauthority" >> $HOME/.xtermrc
echo "/etc/X11/Xsession" >> $HOME/.xtermrc
chmod 755 $HOME/.xtermrc
su -l $USER $HOME/.xtermrc
#sessreg -d -l $DISPLAY $USER
rm -f $HOME/local
umount -l $DRIVES 2>/dev/null
rm -rf /tmp/kde-$USER*
rm -rf /tmp/mcop-$USER*
rm -rf /tmp/ksocket-$USER*

#If Guest user, destroy temporary account
if [ -n "$GUESTUSER" ];then
  userdel -r $USER
fi

# Exit with value 1 otherwise it will restart KDE again!
exit 1
