wm: infra

ref: 45c1a8e584fc2d7d352bc58aadc38389af6a6193
dir: /newuser/

View raw version
#!/bin/rc
run_newuser=t

fn usage {
		echo 'usage: newuser [-n] [-d dept] [-e email] [-i postid] sponsormail user pass' >[1=2]
		exit 'usage'
}

while (~ $1 -*) {
	switch ($1) {
		case -[dier]
                        if(~ $#x 0) x=$1 $2
                        if not x=$x $1 $2
        		shift
		case -n
			run_newuser=f
		case -*
	 		usage
	}
	shift
}

if (~ $#* 3) {

	s=$1
	u=$2
	p=$3

	auth/keyfs

	if(test -w /srv/cwfs.cmd){
	echo newuser $u >> /srv/cwfs.cmd
	wm/chusr $x -s $s -p $p $u
	if(~ $run_newuser t) {
		# auth/as $u /sys/lib/newuserb # messes up with namespace
		if(! test -f /env/authdom)
			authdom=`{ndb/query sys $sysname authdom}

		if(! test -f /env/authdom) {
					echo 'newuser: no authdom variable or entry in ndb' >[1=2]
					exit 'no authdom'
		}
		echo 'key user='$u' proto=dp9ik dom='$authdom' role=client !password='$p >/mnt/factotum/ctl
		rcpu -u $u -c /sys/lib/newuser
	}
	auth/enable $u
	}

	if not {
		echo 'no cwfs.cmd or access to it'>[2=1]
		exit 'no cwfs.cmd or access to it'
	}

}
if not
    usage