Réinitialiser le mot de passe utilisateur sans utiliser "Mot de passe oublié?"


9

Je sais que dans Drupal 7, je pouvais réinitialiser le mot de passe de l'utilisateur # 1 via le code.

define('DRUPAL_ROOT', getcwd());
require_once DRUPAL_ROOT . '/includes/bootstrap.inc';
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
require_once DRUPAL_ROOT . '/includes/password.inc';
$newhash = user_hash_password('newpass');
$updatepass = db_update('users') 
  ->fields(array('pass' => $newhash))
  ->condition('uid', '1', '=')
  ->execute();

( user_hash_password()n'existe plus dans Drupal 8.)

Alternativement, je pourrais utiliser le code suivant.

define('DRUPAL_ROOT', getcwd());
require_once DRUPAL_ROOT . '/includes/bootstrap.inc';
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
require_once DRUPAL_ROOT . '/includes/password.inc';
$edit['pass'] = 'newpass';
$account= user_load(1);
user_save($account, $edit);

Quel est le code équivalent pour Drupal 8? Quelle API dois-je utiliser à cet effet?

Réponses:


12

C'est plus facile de nos jours:

$account = \Drupal::entityTypeManager()->getStorage('user')->load(1);
$account->setPassword('new password');
$account->save();

comme toujours une solution très bonne et claire, tnx Master Clive
— Yusef

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.