Subversion Repositories wimsdev

Rev

Rev 11431 | Rev 13323 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 11431 Rev 12555
Line 7... Line 7...
7
!set limit_while=$[10^$limit]
7
!set limit_while=$[10^$limit]
8
 
8
 
9
!distribute items $wims_read_parm into login,cl,meth
9
!distribute items $wims_read_parm into login,cl,meth
10
!set login=!lower $login
10
!set login=!lower $login
11
!if $login=$empty
11
!if $login=$empty
12
   error=login_empty
12
  error=login_empty
13
   !exit
13
  !exit
14
!endif
14
!endif
15
!set login_ext=$login
15
!set login_ext=$login
16
!if $meth!=$empty
16
!if $meth!=$empty
17
  !set meth_=!word 1 of $meth
17
  !set meth_=!word 1 of $meth
18
  !bound meth_ within ldap default $empty
18
  !bound meth_ within ldap default $empty
19
  !set ldap_id=!word 2 of $meth
19
  !set ldap_id=!word 2 of $meth
20
  !if $ldap_id!=$empty and $meth_ !=$empty
20
  !if $ldap_id!=$empty and $meth_ !=$empty
21
    !goto ldap
21
    !goto ldap
22
    !exit
22
    !exit
23
  !endif
23
  !endif
24
!endif
24
!endif
25
 
25
 
26
!set login=!text select $char_alnum in $login
26
!set login=!text select $char_alnum in $login
27
!set login=!char 1 to $[$login_max -$limit] of $login
27
!set login=!char 1 to $[$login_max -$limit] of $login
28
!!set cl=!replace internal / by , in $cl
28
!!set cl=!replace internal / by , in $cl
29
!set cl=$(cl[1])
29
!set cl=$(cl[1])
30
!if $cl=$empty
30
!if $cl=$empty
31
  !reset login
31
  !reset login
32
  !exit
32
  !exit
33
!endif
33
!endif
34
cnt=0
34
cnt=0
35
u_exists=yes
35
u_exists=yes
36
login_init=$login
36
login_init=$login
37
!while $u_exists=yes and $cnt<$limit_while
37
!while $u_exists=yes and $cnt<$limit_while
38
      !if $cnt>0
38
  !if $cnt>0
39
        login=$login_init$cnt
39
    login=$login_init$cnt
40
      !endif
40
  !endif
41
      !set tt1=!lookup $login_ext in wimshome/log/classes/$cl/.teacherlist_external
41
  !set tt1=!lookup $login_ext in wimshome/log/classes/$cl/.teacherlist_external
42
      !set tt2=!lookup $login_ext in wimshome/log/classes/$cl/.userlist_external
42
  !set tt2=!lookup $login_ext in wimshome/log/classes/$cl/.userlist_external
43
      !if $tt1!=$empty or $tt2!=$empty
43
  !if $tt1!=$empty or $tt2!=$empty
44
!! user can be both in .userlist and in .teacherlist (see r5260)
44
    !! user can be both in .userlist and in .teacherlist (see r5260)
45
	    !if $tt1=$tt2
45
    !if $tt1=$tt2
46
           login=$tt1
46
      login=$tt1
47
        !else
47
    !else
48
           login=$tt1$tt2
48
      login=$tt1$tt2
49
        !endif
49
    !endif
50
        !exit
50
    !exit
51
      !endif
51
  !endif
52
      !read adm/class/userisinclass $cl,$login
52
  !read adm/class/userisinclass $cl,$login
53
      !set u_exists=$script_reply
53
  !set u_exists=$script_reply
54
      !increase cnt
54
  !increase cnt
55
!endwhile
55
!endwhile
56
!if $cnt>=$limit_while
56
!if $cnt>=$limit_while
57
    !reset login
57
  !reset login
58
!endif
58
!endif
59
!if $login=$empty
59
!if $login=$empty
60
  error=login_missing
60
  error=login_missing
61
  missing=!append item $login_ext to $missing
61
  missing=!append item $login_ext to $missing
62
!endif
62
!endif
63
!exit
63
!exit
64
:ldap
64
:ldap
65
 
65
 
66
!if $ldap_uid!=$ldap_login and $ldap_login notsametext $empty
66
!if $ldap_uid!=$ldap_login and $ldap_login notsametext $empty
67
 !set login=!sh ldapsearch -x -LLL -t -H ldap://$ldap_auth:$ldap_port -b "$ldap_base" $ldap_uid="$login" $ldap_login | grep -v "^[d]n:"
67
  !set login=!sh ldapsearch -x -LLL -t -H ldap://$ldap_auth:$ldap_port -b "$ldap_base" $ldap_uid="$login" $ldap_login | grep -v "^[d]n:"
68
 !set login=!replace internal : by = in $login
68
  !set login=!replace internal : by = in $login
69
 !set login=!getopt $ldap_login in $login
69
  !set login=!getopt $ldap_login in $login
70
 !set login=!text select $char_alnum in $login
70
  !set login=!text select $char_alnum in $login
71
 !set login=!char 1 to $[$login_max -$limit] of $login
71
  !set login=!char 1 to $[$login_max -$limit] of $login
72
 !set login_char=!charcnt $login
72
  !set login_char=!charcnt $login
73
 !if $login_char=3
73
  !if $login_char=3
74
   !set login=$(login)0
74
    !set login=$(login)0
75
 !endif
75
  !endif
76
!endif
76
!endif
77
!if $login=$empty
77
!if $login=$empty
78
  error=login_empty
78
  error=login_empty
79
  !exit
79
  !exit
80
!endif
80
!endif