Drupal 8.0.0 beta 12. More info: https://www.drupal.org/node/2514176
This commit is contained in:
commit
9921556621
13277 changed files with 1459781 additions and 0 deletions
71
core/modules/user/src/UserAuth.php
Normal file
71
core/modules/user/src/UserAuth.php
Normal file
|
@ -0,0 +1,71 @@
|
|||
<?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) && !empty($password)) {
|
||||
$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;
|
||||
}
|
||||
|
||||
}
|
Reference in a new issue