Subversion Repositories wimsdev

Rev

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