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; | |
| } | |
| } |