Subversion Repositories wimsdev

Rev

Rev 20 | Rev 14336 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
20 reyssat 1
# Add a class under the current level.
2
# Calling parameter: supervisor_account,title,...
3
 
4
!if $wims_superclass=$empty or $wims_user!=supervisor or \
5
	$level=$empty or $wims_class/ notin $wims_superclass/$level/
12981 bpr 6
  !exit
20 reyssat 7
!endif
8
 
9
Level_=$wims_superclass/$level
10
Level__=wimshome/log/classes/$Level_
11
userdir=wimshome/log/classes/$wims_superclass/.users
12
s_=!item 1 of $wims_read_parm
13
titles=!item 2 to -1 of $wims_read_parm
14
L=!record 0 of $Level__/programs
15
L=!translate internal / to , in $L
16
L=!column 2 of $L
17
A=!values x for x=201 to 299
18
N=!listcomplement $L in $A
19
newclasses=!sort numeric items $N
20
avcnt=!itemcnt $newclasses
21
newcnt=!itemcnt $titles
22
!if $newcnt<1
12981 bpr 23
  !exit
20 reyssat 24
!endif
25
classes=!record 0 of $Level__/classes
26
classes=!column 1 of $classes
27
classes=!nonempty items $classes
28
 
29
!if $newclasses=$empty or $avcnt<$newcnt
12981 bpr 30
  error=prog_full
31
  !exit
20 reyssat 32
!endif
33
 
34
!if $passs!=$empty
35
 passs=!text select $char_passwd in $passs
36
 passlen=!charcnt $passs
37
 !if $passlen<$passwd_min or $passlen>$passwd_max or $passs != $passs2
38
  error=bad_password
39
  !exit
40
 !endif
41
!else
42
 passs=!defof user_password in $Level__/supervisor
43
!endif
44
 
45
1=!defof user_exists in $userdir/$s_
46
!if $1!=yes
47
 s_=supervisor
48
!else
49
 1=!defof user_supervisable in $userdir/$s_
50
 !if $1!=yes
51
  name=$s_
52
  error=not_supervisable
53
  !exit
54
 !endif
55
 ac_su_list=!defof user_supervise in $userdir/$s_
56
 ac_su_list2=!item 1 to $newcnt of $newclasses
57
 ac_su_list2=!makelist $Level_/x for x in $ac_su_list2
58
 ac_su_list=!listunion $ac_su_list and $ac_su_list2
59
 !setdef !set user_supervise=$ac_su_list in $userdir/$s_
60
!endif
61
 
62
!read adm/class/userdef classes,$wims_superclass,$s_
63
sup_save=$s_
64
save_Supervisor=$s_
65
save_firstname=!defof user_firstname in $userdef
66
save_lastname=!defof user_lastname in $userdef
67
save_email=!defof user_email in $userdef
68
save_pass=*
69
save_passs=$passs
70
!for i=1 to $newcnt
71
 cadd_Supervisor=$save_Supervisor
72
 sadd_firstname=$save_firstname
73
 sadd_lastname=$save_lastname
74
 sadd_email=$save_email
75
 cadd_email=$save_email
76
 cadd_password=$save_pass
77
 sadd_password=$save_passs
78
 cadd_secure=$sechost
79
 cadd_superclass=$wims_superclass
80
 cadd_parent=$Level_
81
 cadd_type=3
82
 cadd_typename=program
83
 cadd_description=!item $i of $titles
84
 new_class=!item $i of $newclasses
85
 !read adm/class/addclass $Level_/$new_class
86
 !setdef !set class_progstyle=$progstyle1 $progstyle2 in\
87
	$Level__/$new_class/.def
88
 !if $progstyle2=all
89
  !for C in $classes
90
   passs2=$passs
91
   !read adm/gateway/addcourse $level/$new_class, $C
92
  !next C
93
 !endif
94
!next i
95
 
96