X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;ds=sidebyside;f=src%2FWallabag%2FUserBundle%2FOAuthStorageLdapWrapper.php;fp=src%2FWallabag%2FUserBundle%2FOAuthStorageLdapWrapper.php;h=8a851f120f36b35f82ea9cfe14a859cfa71a8f0b;hb=3b68f6ca727f52f9dc84fa1a134c092b44c49103;hp=0000000000000000000000000000000000000000;hpb=3f7a28de8473db53b3de9e19d5e8e58b4e21090d;p=github%2Fwallabag%2Fwallabag.git diff --git a/src/Wallabag/UserBundle/OAuthStorageLdapWrapper.php b/src/Wallabag/UserBundle/OAuthStorageLdapWrapper.php new file mode 100644 index 00000000..8a851f12 --- /dev/null +++ b/src/Wallabag/UserBundle/OAuthStorageLdapWrapper.php @@ -0,0 +1,43 @@ +ldapManager = $ldap_manager; + } + + public function checkUserCredentials(IOAuth2Client $client, $username, $password) + { + try { + $user = $this->userProvider->loadUserByUsername($username); + } catch (AuthenticationException $e) { + return false; + } + + if ($user->isLdapUser()) { + return $this->checkLdapUserCredentials($user, $password); + } else { + return parent::checkUserCredentials($client, $username, $password); + } + } + + private function checkLdapUserCredentials($user, $password) + { + if ($this->ldapManager->bind($user, $password)) { + return array( + 'data' => $user, + ); + } else { + return false; + } + } +}