File: deluser

package info (click to toggle)
wims 2%3A4.29a%2Bdfsg1-3
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 185,704 kB
  • sloc: xml: 366,687; javascript: 120,570; ansic: 62,341; java: 62,170; sh: 7,744; perl: 3,937; yacc: 3,217; cpp: 1,915; lex: 1,805; makefile: 1,084; lisp: 914; pascal: 601; python: 520; php: 318; asm: 7
file content (99 lines) | stat: -rw-r--r-- 4,196 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
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