Subversion Repositories wimsdev

Rev

Rev 16805 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed


badfield=
!read adm/class/authchars
!for n in institution,description,supervisor,email,level
  u_=!translate internal !$$<" to $    $ in $(up_$n)
  !if $n!=supervisor
    u_=!replace , by &#44; in $u_
  !endif
  u_=!singlespace $u_
  u_=!trim $u_
  !if $n iswordof email level homepage
    u_=!word 1 of $u_
  !endif
  !if $n=homepage
    !if / notin $u_ or .. isin $u_
      u_=
    !else
      t_=!defof titb in wimshome/log/classes/$wims_class/doc/$u_.def
      !if $t_=$empty
        u_=
      !endif
    !endif
  !endif
  c=!charcnt $u_
  !if $c<$(min_$n) or $c>$(max_$n)
    u_=$(class_$n)
    !if $c>0
      badfield=$badfield $n
    !endif
  !endif
  up_$n=$u_
!next n

up_email=!word 1 of $up_email
et=!translate @ to $ $ in $up_email
n=!wordcnt $et
!if $n!=2
  up_email=
!endif
!default up_email=$class_email
!bound up_limit between integer 1 and $wims_class_user_limit default $class_limit
!bound up_topscores between integer 0 and $wims_class_user_limit default $class_topscores
!bound up_anonymtopscores within yes,no default yes
!bound up_authscoresuspend within yes,no default yes
!bound up_supconnectshowed within yes,no default no
!bound up_exotitleform within -1,0,1,2,3 default 0
!bound up_exolog between integer 0 and $wims_exolog_limit
!bound up_examlog between integer 0 and $wims_examlog_limit
!bound up_allowcloning within yes,no default no
!bound up_examscore_withoutip within yes,no default no
!bound up_hideaverage within yes,no default no
!bound up_mexolog within yes,no default no
!if $up_allowcloning=yes
  !read adm/class/authchars
  up_cloningpwd=!text select $char_passwd in $up_cloningpwd
  l=!charcnt $up_cloningpwd
  !if $l<$passwd_min or $l>$passwd_max
          !reset up_cloningpwd
          error=emptycloningpwd
          up_allowcloning=no
  !endif
!else
  !reset up_cloningpwd
!endif
!default up_examshow=yes
ll=!words2items $wims_site_languages
!bound up_lang within $ll default $class_lang
today=!char 1 to 8 of $wims_now
!if $class_type isin 13
  up_expiration=$class_expiration
!else
  limit_expiration=!sh date --date '1 years 3 months' +%Y%m%d
  !bound up_expiration between integer $today and $limit_expiration default $class_expiration
!endif
up_level=!upper $up_level
up_level=!trim $up_level
up_level=!char 1,2 of $up_level
!bound up_level within $wims_listlevel default $class_level
up_secure=!lower $up_secure
up_secure=!singlespace $up_secure
up_secure=!text select $char_lower $char_digit.-_ in $up_secure
up_secure=!char 1 to 1024 of $up_secure
!if $up_secure!=$empty
  test=!checkhost $up_secure
  !if $test<1
    error=$error checkhost
    up_secure=$class_secure
  !endif
!endif

!if $class_type isin 024
  !! --- check geoloc
  up_geoloc=!text select -0123456789., in $up_geoloc
  X=!item 1 of $up_geoloc
  X=$[$X * 1]
  Y=!item 2 of $up_geoloc
  Y=$[$Y * 1]
  N=!itemcnt $up_geoloc
  !if $N!=2 or NAN isin $X$Y
    up_geoloc=$empty
  !endif
  !! --- end check geoloc
  !! --- check location
  up_location=!translate ,!$$"< to $     $ in $up_location
  up_location=!singlespace $up_location
  up_location=!trim $up_location
  !! --- end check location
!else
  !reset up_location up_geoloc
!endif

!! remarks don't forget to add variable name to adm/class/regclass/proc/cloning.proc to keep it when cloning class (if necessary)

!setdef !set class_password=$class_password\
!set class_supervisor=$up_supervisor\
!set class_description=$up_description\
!set class_institution=$up_institution\
!set class_email=$up_email\
!set class_lang=$up_lang\
!set class_creation=$class_creation\
!set class_expiration=$up_expiration\
!set class_limit=$up_limit\
!set class_topscores=$up_topscores\
!set class_anonymtopscores=$up_anonymtopscores\
!set class_level=$up_level\
!set class_secure=$up_secure\
!set class_connections=$class_connections\
!set class_option=$up_option $up_optionex\
!set class_lock=$up_lock\
!set class_homepage=$class_homepage\
!set class_bgcolor=$class_bgcolor\
!set class_refcolor=$class_refcolor\
!set class_ref_menucolor=$class_ref_menucolor\
!set class_ref_button_help_bgcolor=$class_ref_button_help_bgcolor\
!set class_ref_button_help_color=$class_ref_button_help_color\
!set class_ref_button_bgcolor=$class_ref_button_bgcolor\
!set class_ref_button_color=$class_ref_button_color\
!set class_bgimg=$class_bgimg\
!set class_theme=$class_theme\
!set class_theme_icon=$class_theme_icon\
!set class_css=$class_css\
!set class_exolog=$up_exolog\
!set class_examlog=$up_examlog\
!set class_examshow=$up_examshow\
!set class_ent=$up_ent\
!set class_external_auth=$up_external_auth\
!set class_mixed_external_auth=$up_mixed_external_auth\
!set class_authidp=$class_authidp\
!set class_cas_auth=$class_cas_auth\
!set class_ldap_auth=$class_ldap_auth\
!set class_php_auth=$class_php_auth\
!set class_ldap_port=$class_ldap_port\
!set class_ldap_version=$class_ldap_version\
!set class_ldap_base=$class_ldap_base\
!set class_ldap_branch=$class_ldap_branch\
!set class_ldap_uid=$class_ldap_uid\
!set class_ldap_login=$class_ldap_login\
!set class_ldap_email=$class_ldap_email\
!set class_ldap_regnum=$class_ldap_regnum\
!set class_ldap_photourl=$class_ldap_photourl\
!set class_authscoresuspend=$up_authscoresuspend\
!set class_exotitleform=$up_exotitleform\
!set class_supconnectshowed=$up_supconnectshowed\
!set class_defined=yes\
!set class_examscore_withoutip=$up_examscore_withoutip\
!set class_sendmailteacher=$up_sendmailteacher\
!set class_location=$up_location\
!set class_geoloc=$up_geoloc\
!set class_hideaverage=$up_hideaverage\
!set class_mexolog=$up_mexolog\
in wimshome/log/classes/$wims_class/.def

!! change class_expiration in all subclasses .def file
!if $class_typename isitemof portal,group
  listdef=!sh cd $wims_home/log/classes/$wims_superclass;\
grep -r class_expiration * | awk -F: '{print $$1}'
  listdef=!lines2items $listdef
  !for file in $listdef
    !setdef !set class_expiration=$up_expiration in wimshome/log/classes/$wims_superclass/$file
  !next file
!endif

!if $class_type=0 or ($class_type=1 and $wims_typename=class)
  !setdef !set class_allowcloning=$up_allowcloning\
!set class_cloningpwd=$up_cloningpwd\
in wimshome/log/classes/$wims_class/.def
!endif

!if $class_type isin 024
  up_regvars=!item 1 to $limit_regvars of $up_regvars
  up_regvars=!singlespace $up_regvars
  !! MAYBE WE SHOULD TEST LENGTH OF EACH regvar name (not be too long or too short) ?
  !setdef !set class_regvars=$up_regvars in wimshome/log/classes/$wims_class/.def
!endif

lastname=!word -1 of $up_supervisor
firstname=!word 1 to -2 of $up_supervisor
lastname=!char 1 to 30 of $lastname
firstname=!char 1 to 50 of $firstname
!setdef !set user_email=$up_email\
!set user_lastname=$lastname\
!set user_firstname=$firstname in wimshome/log/classes/$wims_class/supervisor

sesdir=!translate internal _ to $ $ in $wims_sesdir
sesdir=!word 1 of $sesdir
!if $modtoolchg=0
  !setdef !set wims_developer=$empty in wimshome/log/classes/$wims_class/supervisor
  !setdef wims_developer=$empty in wimshome/$sesdir/var.stat
!endif
!if $wims_superclass!=$empty
  !sh cd $wims_home/log/classes; ./.build-index $wims_superclass
!else
  !sh cd $wims_home/log/classes; ./.build-index $wims_class
!endif