Bolt\AccessControl\Password::setRandomPassword PHP Method

setRandomPassword() public method

Set a random password for user.
public setRandomPassword ( string $username ) : string | boolean
$username string User specified by ID, username or email address.
return string | boolean New password or FALSE when no match for username.
    public function setRandomPassword($username)
    {
        $password = false;
        /** @var UsersRepository $repo */
        $repo = $this->app['storage']->getRepository('Bolt\\Storage\\Entity\\Users');
        if ($userEntity = $repo->getUser($username)) {
            $password = $this->app['randomgenerator']->generateString(12);
            $userEntity->setPassword($password);
            $userEntity->setShadowpassword(null);
            $userEntity->setShadowtoken(null);
            $userEntity->setShadowvalidity(null);
            $this->app['storage']->getRepository('Bolt\\Storage\\Entity\\Users')->save($userEntity);
            $this->app['logger.system']->info("Password for user '{$userEntity->getUsername()}' was reset via Nut.", ['event' => 'authentication']);
        }
        return $password;
    }

Usage Example

Exemplo n.º 1
0
 public function testSetRandomPassword()
 {
     $app = $this->getApp();
     $this->addDefaultUser($app);
     $entityName = 'Bolt\\Storage\\Entity\\Users';
     $repo = $app['storage']->getRepository($entityName);
     $logger = $this->getMock('\\Monolog\\Logger', ['info'], ['testlogger']);
     $logger->expects($this->atLeastOnce())->method('info')->with($this->equalTo("Password for user 'admin' was reset via Nut."));
     $app['logger.system'] = $logger;
     $password = new Password($app);
     $newPass = $password->setRandomPassword('admin');
     $userEntity = $repo->getUser('admin');
     $crypt = new PasswordLib();
     $compare = $crypt->verifyPasswordHash($newPass, $userEntity->getPassword());
     $this->assertTrue($compare);
     $this->assertEmpty($userEntity->getShadowpassword());
     $this->assertEmpty($userEntity->getShadowtoken());
     $this->assertNull($userEntity->getShadowvalidity());
 }
All Usage Examples Of Bolt\AccessControl\Password::setRandomPassword