| 178 |
} |
} |
| 179 |
} |
} |
| 180 |
|
|
| 181 |
|
function signup_user() { |
| 182 |
|
$binddn = $this->conf['authbaseattr']."=".utf8_encode($this->conf["authuser"]).", ".$this->conf['authbasedn']; |
| 183 |
|
$bind = @ldap_bind($this->conn, $binddn, $this->conf['authpass']); |
| 184 |
|
|
| 185 |
|
} |
| 186 |
|
|
| 187 |
/** establish a connection to the LDAP server |
/** establish a connection to the LDAP server |
| 188 |
*/ |
*/ |
| 189 |
function auth($me, $login=false , $pass=false) { |
function auth(&$me, $group=false, $login=false , $pass=false) { |
| 190 |
if (!$me) { |
if (!$me) { |
| 191 |
$this->logout(); |
$this->logout(); |
| 192 |
} |
} |
| 193 |
|
|
| 194 |
|
// echo'<pre>';print_r(get_defined_vars());echo'</pre>'; |
| 195 |
if (!$me && $login && $pass) { |
if (!$me && $login && $pass) { |
| 196 |
$binddn = $this->conf['baseattr']."=".utf8_encode($login).", ".$this->conf['basedn']; |
$binddn = $this->conf['baseattr']."=".utf8_encode($login).", ".$this->conf['basedn']; |
| 197 |
if (@ldap_bind($this->conn, $binddn, $pass)) { |
$bind = @ldap_bind($this->conn, $binddn, $pass); |
| 198 |
|
if ($bind) { |
| 199 |
$i = ldap_search($this->conn, $this->conf['groupdn'], $this->conf['groupattr']."= $binddn", array($this->conf['membattr'])); |
$i = ldap_search($this->conn, $this->conf['groupdn'], $this->conf['groupattr']."= $binddn", array($this->conf['membattr'])); |
| 200 |
$ix = ldap_get_entries($this->conn, $i); |
$ix = ldap_get_entries($this->conn, $i); |
| 201 |
for ($x=0; $x<$ix["count"]; $x++) { |
for ($x=0; $x<$ix["count"]; $x++) { |
| 202 |
$gps[] = $ix["$x"]["{$this->conf['membattr']}"][0]; |
$gps[] = $ix["$x"]["{$this->conf['membattr']}"][0]; |
| 203 |
} |
} |
| 204 |
|
if (isset($gps) and is_array($gps)) { |
| 205 |
|
if ($group and (!in_array($group,$gps))) { |
| 206 |
|
$this->message.= $this->conf['notinrightgroup']." ($group)"; |
| 207 |
|
return false; |
| 208 |
|
} |
| 209 |
|
$_SESSION['gps'] = $gps; |
| 210 |
|
if (is_array($gps) and in_array($this->conf['admingrp'],$gps)) { |
| 211 |
|
$this->admin = true; |
| 212 |
|
$_SESSION['admin'] = $this->admin; |
| 213 |
|
} |
| 214 |
|
} elseif ($group) { |
| 215 |
|
$this->message.= $this->conf['notinrightgroup']." ($group)"; |
| 216 |
|
return false; |
| 217 |
|
} |
| 218 |
$_SESSION['me'] = $login; |
$_SESSION['me'] = $login; |
|
session_register('pass'); |
|
| 219 |
$_SESSION['pass'] = $pass; |
$_SESSION['pass'] = $pass; |
|
$_SESSION['gps'] = $gps; |
|
|
if (is_array($gps) and in_array($this->conf['admingrp'],$gps)) { |
|
|
$this->admin = true; |
|
|
$_SESSION['admin'] = $this->admin; |
|
|
} |
|
| 220 |
$this->rawlog("Login - $login"); |
$this->rawlog("Login - $login"); |
| 221 |
|
$me = $login; |
| 222 |
return true; |
return true; |
| 223 |
} else { |
} else { |
| 224 |
$this->message.= "<br />".$this->showerror(); |
$this->message.= "<br />".$this->showerror(); |
| 226 |
} |
} |
| 227 |
} elseif ($me) { |
} elseif ($me) { |
| 228 |
$binddn = $this->conf['baseattr']."=".utf8_encode($me).", ".$this->conf['basedn']; |
$binddn = $this->conf['baseattr']."=".utf8_encode($me).", ".$this->conf['basedn']; |
| 229 |
if (@ldap_bind($this->conn, $binddn, $_SESSION['pass'])) { |
$bind = @ldap_bind($this->conn, $binddn, $_SESSION['pass']); |
| 230 |
return true; |
if ($bind) { |
| 231 |
|
if ((!isset($_SESSION['gps']) and $group) or (is_array($_SESSION['gps']) and $group and !in_array($group,$_SESSION['gps']))) { |
| 232 |
|
$this->logout(); |
| 233 |
|
$this->message.= $this->conf['notinrightgroup']." ($group)"; |
| 234 |
|
return false; |
| 235 |
|
} else { |
| 236 |
|
return true; |
| 237 |
|
} |
| 238 |
} else { |
} else { |
| 239 |
return false; |
return false; |
| 240 |
} |
} |