/** * @task edit */ public function changePassword(PhabricatorUser $user, PhutilOpaqueEnvelope $envelope) { if (!$user->getID()) { throw new Exception("User has not been created yet!"); } $user->openTransaction(); $user->reload(); $user->setPassword($envelope); $user->save(); $log = PhabricatorUserLog::newLog($this->actor, $user, PhabricatorUserLog::ACTION_CHANGE_PASSWORD); $log->save(); $user->saveTransaction(); }
// it. phutil_passthru('stty -echo'); $password = phutil_console_prompt("Enter a password for this user [blank to leave unchanged]:"); phutil_passthru('stty echo'); if (strlen($password)) { $changed_pass = $password; } $is_admin = $user->getIsAdmin(); $set_admin = phutil_console_confirm('Should this user be an administrator?', $default_no = !$is_admin); $user->setIsAdmin($set_admin); echo "\n\nACCOUNT SUMMARY\n\n"; $tpl = "%12s %-30s %-30s\n"; printf($tpl, null, 'OLD VALUE', 'NEW VALUE'); printf($tpl, 'Username', $original->getUsername(), $user->getUsername()); printf($tpl, 'Real Name', $original->getRealName(), $user->getRealName()); printf($tpl, 'Email', $original->getEmail(), $user->getEmail()); printf($tpl, 'Password', null, $changed_pass !== false ? 'Updated' : 'Unchanged'); printf($tpl, 'Admin', $original->getIsAdmin() ? 'Y' : 'N', $user->getIsAdmin() ? 'Y' : 'N'); echo "\n"; if (!phutil_console_confirm("Save these changes?", $default_no = false)) { echo "Cancelled.\n"; exit(1); } $user->save(); if ($changed_pass !== false) { // This must happen after saving the user because we use their PHID as a // component of the password hash. $user->setPassword($changed_pass); $user->save(); } echo "Saved changes.\n";