Rev 5601 | Blame | Compare with Previous | Last modification | View Log | RSS feed
# Utilise pour verifier l'existence d'un etudiant dans une classe
# Check.user verifie que l'element $quser est present dans $qclass
#On considere que la classe a ete verifie en amont (via check.class)
quser=!word 1 of $quser
quser=!translate internal . to @ in $quser
quser=!translate internal /;,?* to $ $ in $quser
!if $ $ isin $quser
quser=
!endif
!if $quser=$empty
:baduser
error=bad user (empty quser or bad chars detected)
!exit
!endif
!if $quser=supervisor
deffile=supervisor
!else
deffile=.users/$quser
!endif
class_superclass=!defof class_superclass in $classdeffile
!if $class_superclass=
userdeffile=wimshome/log/classes/$qclass/$deffile
test=!defof user_exists in $userdeffile
!if $test!=yes
error=user $quser not in this class ($qclass)
!exit
!endif
!else
# on regarde si user existe dans la superclasse
userdeffile=wimshome/log/classes/$class_superclass/$deffile
test=!defof user_exists in $userdeffile
!if $test!=yes
error=user '$quser' not present in superclass $class_superclass.
!exit
!endif
test=!defof user_participate in $userdeffile
### contient les classes auxquelles est inscrit l'étudiant et les cours non obligatoires
test=!items2words $test
!if $qclass notwordof $test
class_typename=!defof class_typename in $classdeffile
!if $quser!=supervisor and $class_typename iswordof class and $qclass notwordof $test
error=Sorry, this user ($quser) does not participates to this subclass ($qclass).
!exit
!endif
!if $class_typename iswordof program and (mandatory notwordof $class_progstyles or $class_progstyles=$empty)
###si le programme n'est pas obligatoire, user_participate contient ce qu'il faut
qlist=!record 0 of wimshome/log/classes/$qclass/courses
qcourses=!linecnt $qlist
!for q_c=1 to $qcourses
testc=!line $q_c of $qlist
test1=!replace internal / by , in $(testc[1])
###test1 doit avoir trois items dans le cas d'un établissement
!if $class_superclass/$(test1[1])/$(test1[2]) iswordof $test
qclass=$class_superclass/$(testc[1])
#### il devrait n'y en avoir qu'un correspondant au programme ?
!exit
!endif
!next
!endif
!endif
!endif
Generated by GNU Enscript 1.6.5.90.