public function init($config)
{
if ($this->_userManager === null) {
throw new TConfigurationException('authmanager_usermanager_required');
}
if ($this->_returnUrlVarName === null) {
$this->_returnUrlVarName = $this->getApplication()->getID() . ':' . self::RETURN_URL_VAR;
}
$application = $this->getApplication();
if (is_string($this->_userManager)) {
if (($users = $application->getModule($this->_userManager)) === null) {
throw new TConfigurationException('authmanager_usermanager_inexistent', $this->_userManager);
}
if (!$users instanceof IUserManager) {
throw new TConfigurationException('authmanager_usermanager_invalid', $this->_userManager);
}
$this->_userManager = $users;
}
$application->attachEventHandler('OnAuthentication', array($this, 'doAuthentication'));
$application->attachEventHandler('OnEndRequest', array($this, 'leave'));
$application->attachEventHandler('OnAuthorization', array($this, 'doAuthorization'));
$this->_initialized = true;
}