File: addvar.proc

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 (86 lines) | stat: -rw-r--r-- 2,414 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
nblocalvar=!itemcnt $tv_listlocal
!if $nblocalvar>=$MAXtechvar
  error=toomanytechvar
  job=listvar
  !changeto $job.proc
  !exit
!endif

!if $tc_abandon!=$empty
  !reset tc_abandon,tc_value,tc_name,tc_set
  job=listvar
  !changeto $job.proc
  !exit
!endif

!if $tc_set!=$empty
  !! check name validity
  tc_name=!text select 0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ in $tc_name
  tc_name=!nospace $tc_name
  tc_name=!lower $tc_name
  n=!charcnt $tc_name
  !if $n>$MAXcharname or $n<1
    error=badnamelen
    !reset tc_set
    !exit
  !endif

  !! check list of name already in use
  !if $tc_name isitemof $tv_listallname
    error=namealreadyuse
    !reset tc_set
    !exit
  !endif

  !! check forbidden name
  !for rac in exam,sheet,vote,manual,login,name,lastname,firstname,password,email,\
      regnum,photourl,comments,external_auth,allscore,averages,average,sheets,sheetexo,\
      exams,manuals,participate,supervisable,supervise,manual,\
      regprop
    !if $rac isin $tc_name
      t=!replace internal $rac by $empty in $tc_name
      !if $[$t]!=NaN
        error=nameforbidden
        !exit
      !endif
    !endif
  !next rac

  !! check list of value
  tc_value=!listuniq $tc_value
  tc_value=!text select char azertyuiopqsdfghjklmwxcvbnAZERTYUIOPQSDFGHJKLMWXCVBN,1234567890 in $tc_value
  tc_value=!listcomplement EMPTY in $tc_value
  n=!itemcnt $tc_value
  !if $n<1 or $n>$MAXnbvalue
    error=badvaluenb
    !reset tc_set
    !exit
  !endif
  !! save
  !fileappend wimshome/log/classes/$wims_class/.techvar :$tc_name\
$tc_value
  !fileappend wimshome/log/classes/$tv_Sclass/.indextechvar :$tc_name,$wims_class,$[$nblocalvar+1]
  wims_module_log=techvar add $tc_name $tc_value
  !restart module=adm/class/techvar
!else
  !if $nblocalvar=0
    olddon=!record 0 of wimshome/s2/$wims_session/oldtechvar.don
    !if $olddon=$empty
      olddon=!sh cd $wims_home/log/classes/$tv_Sclass/.users/;\
grep -r user__ * | awk -F= '$$2!=""{print $$0}'
      olddon=!replace internal :!set user__ by , in $olddon
      olddon=!replace internal = by , in $olddon
      !if $olddon=$empty
        !writefile wimshome/s2/$wims_session/oldtechvar.don EMPTY
      !else
        !writefile wimshome/s2/$wims_session/oldtechvar.don $olddon
      !endif
    !endif
    !if EMPTY=$olddon
      !reset olddon
    !endif
    !if $olddon!=$empty
      msg_info=witholdvar
    !endif
  !endif
!endif