/** * Handles setting the error on the credentials * * @param Event $event * @param int $code * @param string $message * @return void */ private function setErrorOnEvent(Event $event, $code, $message) { if ($this->breakChainOnFailure) { $event->stopPropagation(); } $event->triggerError($code, "[{$this->name}] {$message}"); return; }
/** * Handles setting the error on the credentials * * Returns STATUS_ERROR unless BreakChainOnFailure is set * * @param $ldap * @param Event $event * @param int $code * @param string $message * @return int */ private function setErrorOnEvent($ldap, $event, $code, $message) { if ($this->breakChainOnFailure) { $event->stopPropagation(); } $event->triggerError($code, "[{$this->name}] {$message}"); if (is_resource($ldap)) { ldap_unbind($ldap); } }
/** * Triggers the event and returns the identity * * @param Event $event * @return Identity */ private function triggerAndReturnIdentity(Event $event) { if (empty($this->sentries)) { $event->triggerError(Sentry::INVALID, "No sentries available"); } else { /** @var Sentry $sentry */ foreach ($this->sentries as $sentry) { $sentry->discern($event); if ($event->isPropagationStopped()) { break; } } } /** @var Identity $identity */ $identity = $event->identity(); if ($event->hasError()) { $identity->addError($event->error()); } return $identity; }