3 require_once('common/include/User.class');
5 class LdapextauthPlugin extends Plugin {
6 function LdapextauthPlugin () {
8 $this->name = "ldapextauth";
9 $this->hooks[] = "session_before_login";
11 $this->ldap_conn = false ;
14 function CallHook ($hookname, $params) {
15 global $Language, $HTML ;
17 $loginname = $params['loginname'] ;
18 $passwd = $params['passwd'] ;
21 case "session_before_login":
22 // Authenticate against LDAP
23 $f=fopen ('php://stderr', 'a');
24 fwrite ($f, "Login = $loginname pass = $passwd\n") ;
35 function AuthUser ($loginname, $passwd) {
36 if (!$this->ldap_conn) {
37 $this->ldap_conn = ldap_connect ($sys_ldap_host,$sys_ldap_port);
39 if ($sys_ldap_version) {
40 ldap_set_option ($this->ldap_conn, LDAP_OPT_PROTOCOL_VERSION, $sys_ldap_version);
42 $dn = "cn=".$loginname.",".$base_dn ;
43 if (ldap_bind($this->ldap_conn,$dn,$user_pass)) {
46 $res = ldap_search ($this->ldap_conn, $base_dn, $dn) ;
47 $info = ldap_get_entries ($this->ldap_conn,$res);
49 $realname = $info[0]['gecos'][0] ;
50 $email = $info[0]['email'][0] ;
54 $u->create ($loginname, $realname, $passwd, $passwd, $email,
55 1, 1, 0, 'GMT', '', 0) ;
59 return false ; // Probably ignored, but just in case
66 // c-file-style: "bsd"