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 |