public function auth($username, $password) { require FRAMEWORK . DS . 'conf' . DS . 'datastore.php'; $config = $datastore[$this->datastore]; $con = @ldap_connect($config['protocol'] . $config['domain']); if (!$con) { throw new connectException('Could not connect to the Active Directory.'); } ldap_set_option($con, LDAP_OPT_REFERRALS, 0); ldap_set_option($con, LDAP_OPT_PROTOCOL_VERSION, 3); if (!@ldap_bind($con, $username . '@' . $config['domain'], $password)) { $config2 = $datastore[$this->datastore2]; $con2 = @ldap_connect($config2['protocol'] . $config2['domain']); ldap_set_option($con2, LDAP_OPT_REFERRALS, 0); ldap_set_option($con2, LDAP_OPT_PROTOCOL_VERSION, 3); if (!$con2) { throw new connectException('Could not connect to the Active Directory.'); } if (!@ldap_bind($con2, $username . '@' . $config2['domain'], $password)) { return false; } else { $model = new userModel(); $users = $model->getfromUsername($username); if (count($users) == 1) { return $users[0]; } else { return false; } } } else { $model = new userModel(); $users = $model->getfromUsername($username); if (count($users) == 1) { return $users[0]; } else { return false; } } }
public static function getCurrentuser() { require FRAMEWORK . DS . 'conf' . DS . 'auth.php'; if (!self::$currentuser instanceof userObject) { if (isset($_COOKIE['userid']) && isset($_COOKIE['challenge'])) { $loginModel = new loginModel(); $useridCond['userid'] = array('mode' => '=', 'value' => $_COOKIE['userid']); $challengeCond['challenge'] = array('mode' => '=', 'value' => $_COOKIE['challenge']); $cond['AND'] = array($useridCond, $challengeCond); $logins = $loginModel->get($cond); // This should give us 1 hit if (count($logins) == 1) { $userid = $_COOKIE['userid']; $model = new userModel(); $tmp = $model->getfromId($userid); } else { $userid = $defaultUserid; $model = new userModel(1); $tmp = $model->getfromId($userid); } } elseif ($_SERVER['REMOTE_USER'] != '' && !isset($_COOKIE['noremoteuser'])) { $cred = explode('\\', $_SERVER['REMOTE_USER']); if (count($cred) == 2) { list($domainpart, $user) = $cred; } else { $user = $cred; } $model = new userModel(); $tmp = $model->getfromUsername(addslashes($user)); if (count($tmp) == 1) { $userid = $tmp[0]->getId(); } else { $userid = $defaultUserid; $tmp = $model->getfromId($userid); } } else { $userid = $defaultUserid; $model = new userModel(1); $tmp = $model->getfromId($userid); } if (count($tmp) != 1) { throw new Exception('user could not be retrieved'); } self::$currentuser = $tmp[0]; } /* if(! (self::$currentuser instanceof userObject ) ){ $user = new userObject(); $user->setId('c5c1c65fd9d4144aafb6fe15abc7f366'); $user->setName('Tim D\'Hooge - FAKE'); $user->setUsername('tim.dhooge'); $user->setDescription(''); $user->setMail(''); $user->setMemberof(array('CN=dienst_informatica,OU=Diensten,OU=Groepen,DC=stadskliniek,DC=lokeren,DC=be')); $user->setGroupid(array('799045fc4d2cee4090c2c5fb5a121942')); self::$currentuser = $user; } */ $_SESSION['authenticated_user'] = self::$currentuser->getName(); return self::$currentuser; }