Subversion Repositories wimsdev

Rev

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

Rev Author Line No. Line
2368 bpr 1
!read adm/class/classlang names.phtml
23 reyssat 2
 
3
wims_prefix=class user tmp n sharing sharable
4
!read adm/class/authchars
5
max_addition=100
6
wims_form_method=post
7
wims_helper=chapter=3
8
 
4828 guerimand 9
!read tabletheme
10
 
23 reyssat 11
!if $wims_user!=supervisor
14332 bpr 12
  !bound job within user,none default none
23 reyssat 13
!else
14332 bpr 14
  !bound job within class,user,part,none default none
23 reyssat 15
!endif
16
 
17
!defread wimshome/log/classes/$wims_class/.def
18
!if $class_expiration=$empty
14332 bpr 19
  error=bad_class
20
  !exit
23 reyssat 21
!endif
22
 
23
part=!trim $part
24
!if $part=$empty and $job=part
14332 bpr 25
  job=none
23 reyssat 26
!endif
27
 
28
pw1=!items2words $pw1
29
pw2=!items2words $pw2
30
pw1=!trim $pw1
31
pw2=!trim $pw2
32
pw1=!singlespace $pw1
33
pw2=!singlespace $pw2
34
 
35
!if $job=none or ($old=$empty and $job notwordof class part) or\
14332 bpr 36
    ($pw1=$empty or $pw2=$empty)
37
  !exit
23 reyssat 38
!endif
39
 
40
!if $pw1!=$pw2
14332 bpr 41
  error=discord
42
  !exit
23 reyssat 43
!endif
44
 
45
pw=!char 1 of $pw1
46
!if $pw=+ and $job=user
14332 bpr 47
  pw1=!char 2 to -1 of $pw1
48
  pw1=!trim $pw1
49
  once=true
23 reyssat 50
!endif
51
t=!wordcnt $pw1
52
!if $t>1 and $job!=user
14332 bpr 53
  error=bad_pass
54
  !exit
23 reyssat 55
!endif
56
 
57
n=!charcnt $pw1
58
!if $n>$max_addition
14332 bpr 59
  error=too_long
60
  !exit
23 reyssat 61
!endif
62
!for i=1 to $t
14332 bpr 63
  pw=!word $i of $pw1
64
  n=!charcnt $pw
65
  !if $n>$passwd_max
66
    error=too_long
67
    !exit
68
  !endif
69
  !if $n>0 and $n<$passwd_min
70
    error=too_short
71
    !exit
72
  !endif
73
  !if $once!=true and $pw=$old
74
    error=nothing_to_do
75
    !exit
76
  !endif
77
  test=!text select $char_passwd in $pw
78
  !if $test!=$pw
79
    error=bad_pass
80
    !exit
81
  !endif
23 reyssat 82
!next i
83
 
84
!if $job=part
14332 bpr 85
  !read adm/class/userdef classes,$wims_class,$part
86
  !defread $userdef
87
  !if $user_exists!=yes
88
    error=bad_user
89
    !exit
90
  !endif
91
  pw1=!passcrypt $pw1
92
  !setdef !set user_password=$pw1 in $userdef
93
  pass=!getdef user_password in $userdef
94
  !if $pass=$pw1
95
    error=success
96
    wims_module_log=Change participant password: $part by $wims_realuser in $wims_class
97
    wims_class_log=change password: $part by $wims_realuser
98
  !else
99
    error=fail
100
  !endif
23 reyssat 101
  !exit
102
!endif
103
 
104
!if $job=user
14332 bpr 105
  !read adm/class/userdef classes,$wims_class,$wims_user
106
  !if $wims_user=supervisor
107
    !read var.auth
108
    !if $error!=$empty
109
      !exit
110
    !endif
23 reyssat 111
  !endif
14332 bpr 112
  !defread $userdef
113
  anc=!word 1 of $user_password
114
  anc=!passcrypt $anc
115
  old=!passcrypt $old
116
  !if $old!=$anc
117
    error=bad_user_password
118
    !exit
119
  !endif
120
  !if $once=true
121
    pw1=$anc $pw1
122
  !endif
123
  pw1=!passcrypt $pw1
124
  !setdef !set user_password=$pw1 in $userdef
125
  pass=!getdef user_password in $userdef
126
  !if $pass=$pw1
127
    error=success
128
    wims_module_log=Change user password: $wims_user $wims_realuser in $wims_class
129
    !if $wims_user=supervisor
130
      wims_class_log=change password by $wims_realuser
131
      !read lang/mail.proc.$moduclass_lang
132
    !endif
133
  !else
134
    error=fail
135
  !endif
23 reyssat 136
  !exit
137
!endif
138
 
139
!if $job=class
14332 bpr 140
  !if $wims_user!=supervisor
141
    error=not_supervisor
142
    !exit
143
  !endif
144
  !read var.auth
145
  !if $error!=$empty
146
    !exit
147
  !endif
148
  !setdef !set class_password=$pw1 in wimshome/log/classes/$wims_class/.def
149
  class_pass=!getdef class_password in wimshome/log/classes/$wims_class/.def
150
  !if $class_pass=$pw1
151
    error=success
152
    wims_module_log=Change class password $wims_class by $wims_realuser in $wims_class.
153
    wims_class_log=change class password by $wims_realuser
154
  !else
155
    error=fail
156
  !endif
23 reyssat 157
!endif