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.