#!/bin/sh

USERSFILE=/etc/scpm.users
SWITCHAPP=/usr/bin/sumf
PERM=all

usage()
{
    echo "Usage: $0 [-r|c] [-s switch_app] [username]"
    exit 0
}

while [ -n "$1" ]; do
    case "$1" in
	-s)
	    test -z "$2" && usage
	    SWITCHAPP="$2"
	    shift
	    ;;
	-r)
	    REMOVE=yes
	    ;;
	-c)
	    CHECK=yes
	    ;;
	-a)
	    PERM=all
	    ;;
	-so)
	    PERM=switch
	    ;;
	-*)
	    usage
	    ;;
	*)
	    NAME="$1"
	    ;;
    esac
    shift
done

if [ "$CHECK" = "yes" ]; then
    ACCESS=$(stat -c '%04a' -L $SWITCHAPP || exit 1)
    if [ ${ACCESS:0:1} -ge 4 ]; then
	if [ -n "$NAME" ]; then
	    if grep -q -E "^$NAME *" $USERSFILE ; then
		exit 0 
	    else
		exit 3
	    fi
	else
	    exit 0
	fi
    else
	exit 2
    fi
fi

test "$UID" != 0 && { echo "You must be root." ; exit 1 ; }

if [ "$REMOVE" = "yes" ]; then
    if [ -n "$NAME" ]; then 
	TMP=$(mktemp /tmp/scpm.users.XXXXXX || exit 1)
	grep -v -E "^$NAME *" $USERSFILE > $TMP
	mv -f $TMP $USERSFILE
	chmod 644 $USERSFILE
    fi
    chmod -s $SWITCHAPP
else
    if [ -n "$NAME" ]; then
	if grep -q "^$NAME *" $USERSFILE ; then
	    echo "$NAME already in $USERSFILE"
	else
	    echo -e "$NAME\t$PERM" >> $USERSFILE
	fi
    fi
    chmod u+s $SWITCHAPP
fi

exit 0
