Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
Total | |
0.00% |
0 / 1 |
|
50.00% |
1 / 2 |
CRAP | |
76.92% |
10 / 13 |
UserAuth | |
0.00% |
0 / 1 |
|
50.00% |
1 / 2 |
7.60 | |
76.92% |
10 / 13 |
__construct | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 3 |
|||
authenticate | |
100.00% |
1 / 1 |
6 | |
100.00% |
10 / 10 |
<?php | |
/** | |
* @file | |
* Contains \Drupal\user\UserAuth. | |
*/ | |
namespace Drupal\user; | |
use Drupal\Core\Entity\EntityManagerInterface; | |
use Drupal\Core\Password\PasswordInterface; | |
/** | |
* Validates user authentication credentials. | |
*/ | |
class UserAuth implements UserAuthInterface { | |
/** | |
* The entity manager. | |
* | |
* @var \Drupal\Core\Entity\EntityManagerInterface | |
*/ | |
protected $entityManager; | |
/** | |
* The password hashing service. | |
* | |
* @var \Drupal\Core\Password\PasswordInterface | |
*/ | |
protected $passwordChecker; | |
/** | |
* Constructs a UserAuth object. | |
* | |
* @param \Drupal\Core\Entity\EntityManagerInterface $entity_manager | |
* The entity manager. | |
* @param \Drupal\Core\Password\PasswordInterface $password_checker | |
* The password service. | |
*/ | |
public function __construct(EntityManagerInterface $entity_manager, PasswordInterface $password_checker) { | |
$this->entityManager = $entity_manager; | |
$this->passwordChecker = $password_checker; | |
} | |
/** | |
* {@inheritdoc} | |
*/ | |
public function authenticate($username, $password) { | |
$uid = FALSE; | |
if (!empty($username) && strlen($password) > 0) { | |
$account_search = $this->entityManager->getStorage('user')->loadByProperties(array('name' => $username)); | |
if ($account = reset($account_search)) { | |
if ($this->passwordChecker->check($password, $account->getPassword())) { | |
// Successful authentication. | |
$uid = $account->id(); | |
// Update user to new password scheme if needed. | |
if ($this->passwordChecker->needsRehash($account->getPassword())) { | |
$account->setPassword($password); | |
$account->save(); | |
} | |
} | |
} | |
} | |
return $uid; | |
} | |
} |