Skip to content

Commit

Permalink
use normal Pimcore login when LDAP connection is not available
Browse files Browse the repository at this point in the history
  • Loading branch information
BlackbitDevs committed Jun 30, 2020
1 parent 576e184 commit 62ebc95
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 15 deletions.
41 changes: 27 additions & 14 deletions src/EventListener/LoginListener.php
Original file line number Diff line number Diff line change
Expand Up @@ -17,21 +17,24 @@
use Alep\LdapBundle\Service\Ldap;
use Pimcore\Event\Admin\Login\LoginCredentialsEvent;
use Pimcore\Event\Admin\Login\LoginFailedEvent;
use Psr\Log\LoggerInterface;

class LoginListener
{
/**
* @var Ldap
*/
/** @var Ldap */
private $ldap;

/** @var LoggerInterface */
private $logger;

/**
* LoginListener constructor.
* @param Ldap $ldap
*/
public function __construct(Ldap $ldap)
public function __construct(Ldap $ldap, LoggerInterface $logger)
{
$this->ldap = $ldap;
$this->logger = $logger;
}

/**
Expand All @@ -55,11 +58,16 @@ public function onAdminLoginCredentials(LoginCredentialsEvent $event)
return;
}

//Authenticate via ldap
$ldapUser = $this->ldap->authenticate($username, $password);
try {
//Authenticate via ldap
$ldapUser = $this->ldap->authenticate($username, $password);

//Update Pimcore user
$this->ldap->updatePimcoreUser($username, $password, $ldapUser);
//Update Pimcore user
$this->ldap->updatePimcoreUser($username, $password, $ldapUser);
} catch (\Exception $e) {
$this->logger->warning($e->getMessage());
return;
}
}

/**
Expand All @@ -76,13 +84,18 @@ public function onAdminLoginFailed(LoginFailedEvent $event)
return;
}

//authenticate via ldap
$ldapUser = $this->ldap->authenticate($username, $password);
try {
//authenticate via ldap
$ldapUser = $this->ldap->authenticate($username, $password);

//Update Pimcore user
$pimcoreUser = $this->ldap->updatePimcoreUser($username, $password, $ldapUser);
//Update Pimcore user
$pimcoreUser = $this->ldap->updatePimcoreUser($username, $password, $ldapUser);

//Update session
$event->setUser($pimcoreUser);
//Update session
$event->setUser($pimcoreUser);
} catch (\Exception $e) {
$this->logger->warning($e->getMessage());
return;
}
}
}
6 changes: 5 additions & 1 deletion src/Service/Ldap.php
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,11 @@ public function __construct(
$this->mapper = $mapper;
$this->logger = $logger;

$this->ldap->bind($searchDn, $searchPassword);
try {
$this->ldap->bind($searchDn, $searchPassword);
} catch(ConnectionException $e) {
$this->logger->alert('Invalid LDAP credentials');
}
}

/**
Expand Down

0 comments on commit 62ebc95

Please sign in to comment.