Rev 15024 | 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
folder_list=!defof USER_DIR_LIST in wimshome/public_html/bases/sys/define.conf
!for folder in $folder_list
!sh for a in `find $wims_home/log/classes/$delu_class/$folder -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/$folder -name '$uu'`; do \
aa=`echo $$a | sed -e "s/$uu/.$uu/"`; mv -f $$a $$aa; done
!next folder
deleted=yes
!endif
!else
typename=!defof class_typename in wimshome/log/classes/$delu_class/.def
!if $typename=group or $typename=portal
!! desactivated for portal !if $typename=group or $typename=portal
!! delete participant in group class delete it in all subclasses.
test=!defof user_participate in $userdef
!! delete a participant but keep access right in memory in case of reactivate access
!! !setdef !set user_participate=$empty in $userdef
!! ----- update userlist
!if $typename=group
!! subclasses userlist where participant registered are updated
lt_=$test,$wims_superclass
!else
!! for the moment userlist of subclasses not live updated (too much time) ; this userlist are update in daily night check
lt_=$wims_superclass
!endif
!for k_ in $lt_
!read adm/class/mkuserlist $k_
!next k_
!!------- end update userlist
Userdef=!replace wimshome/ by $wims_home/ in $userdef
erased=!replace internal .users/ by .users/. in $Userdef
!sh mv -f $Userdef $erased 2>/dev/null
deleted=yes
!else
!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
!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