Subversion Repositories wimsdev

Rev

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.