Rev 8319 | Rev 12159 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
uu=$wims_read_parm
!default delu_class=$wims_class
!if $uu=$empty
!exit
!endif
!read adm/class/userdef classes,$delu_class,$uu
deleted=
!if $wims_superclass=$empty
Userdef=!replace wimshome/ by $wims_home/ in $userdef
test=!defof user_exists in $userdef
!if $test=yes
erased=!replace internal .users/ by .users/. in $Userdef
!sh mv -f $Userdef $erased 2>/dev/null\
for a in `find $wims_home/log/classes/$delu_class -name '$uu.*'`; do \
aa=`echo $$a | sed -e "s/$uu/.$uu/"`; mv -f $$a $$aa; done\
for a in `find $wims_home/log/classes/$delu_class -name '$uu'`; do \
aa=`echo $$a | sed -e "s/$uu/.$uu/"`; mv -f $$a $$aa; done
deleted=yes
!endif
!else
typename=!defof class_typename in wimshome/log/classes/$delu_class/.def
!if $typename iswordof course
delu_test=!sh readlink $wims_home/log/classes/$delu_class/.userlist
delu_up=!defof n_part in wimshome/log/classes/$delu_class/neighbors
!if $delu_up!=$empty and $delu_test=../.userlist
delu_test=!sh find $wims_home/log/classes/$delu_up/2*/score -name '$uu' -size +1 | sed 's!^$wims_home/log/classes/!!;s!/score/.*$$!!'
delu_test=!wordstoitems $delu_test
delu_test=!listcomplement $delu_class in $delu_test
delu_test=!nonempty items $delu_test
!if $delu_test=$empty
delu_class=$delu_up
!goto del_class
!endif
!endif
user_class=!defof user_class in wimshome/log/classes/$delu_class/.users/$uu
!if $user_class!=$empty
!sh rm -f $wims_home/log/classes/$delu_class/.users/$uu
user_courses=!defof user_courses in wimshome/log/classes/$wims_superclass/$user_class/.users/$uu
delu_course=!replace internal ../$wims_superclass/ by in ../$delu_class
user_courses=!listcomplement $delu_course in $user_courses
!setdef !set user_courses=$user_courses in wimshome/log/classes/$wims_superclass/$user_class/.users/$uu
deleted=yes
!endif
!else
:del_class
test=!defof user_participate in $userdef
!if $delu_class isitemof $test
shclass=!defof sharing_user in wimshome/log/classes/$delu_class/neighbors
!default shclass=$delu_class
sharing=!defof sharable_user in wimshome/log/classes/$shclass/neighbors
sharing=!append item $shclass to $sharing
part=!listcomplement $sharing in $test
!setdef !set user_participate=$part in $userdef
courses=!defof user_courses in wimshome/log/classes/$delu_class/.users/$uu
!for delu_c in $courses
!sh rm -f $wims_home/log/classes/$wims_superclass/$delu_c/.users/$uu
!read adm/class/mkuserlist $wims_superclass/$delu_c
!next delu_c
!sh rm -f $wims_home/log/classes/$delu_class/.users/$uu
deleted=yes
!endif
!endif
!endif
!if $deleted=yes
!read adm/class/mkuserlist $delu_class
usercnt=!recordcnt wimshome/log/classes/$delu_class/.userlist
wims_module_log=Delete $deluser
wims_class_log=delete user $deluser
!endif