Beispiel #1
0
 /**
  * Save changes to a user to the database. (re)hashing the password, if needed.
  *
  * @param Entity\Users|array $user
  *
  * @return integer The number of affected rows.
  */
 public function saveUser($user)
 {
     if (is_array($user)) {
         $user = new Entity\Users($user);
     }
     // Make sure the username is slug-like
     $user->setUsername($this->app['slugify']->slugify($user->getUsername()));
     // Save the entity
     return $this->repository->save($user);
 }
Beispiel #2
0
 /**
  * Handle a POST from user edit or first user creation.
  *
  * @param Request $request
  * @param Form    $form      A Symfony form
  * @param boolean $firstuser If this is a first user set up
  *
  * @return Entity\Users|false
  */
 private function validateUserForm(Request $request, Form $form, $firstuser = false)
 {
     $form->submit($request->get($form->getName()));
     if (!$form->isValid()) {
         return false;
     }
     $userEntity = new Entity\Users($form->getData());
     $userEntity->setUsername($this->app['slugify']->slugify($userEntity->getUsername()));
     if (!$firstuser) {
         $userEntity->setRoles($this->users()->filterManipulatableRoles($userEntity->getId(), $userEntity->getRoles()));
     }
     if ($this->getRepository('Bolt\\Storage\\Entity\\Users')->save($userEntity)) {
         $this->flashes()->success(Trans::__('page.edit-users.message.user-saved', ['%user%' => $userEntity->getDisplayname()]));
         $this->notifyUserSave($request, $userEntity->getDisplayname(), $userEntity->getEmail(), $firstuser);
     } else {
         $this->flashes()->error(Trans::__('page.edit-users.message.saving-user', ['%user%' => $userEntity->getDisplayname()]));
     }
     return $userEntity;
 }
Beispiel #3
0
 public function testIsValidSessionValidWithDbTokenNoDbUser()
 {
     $this->markTestIncomplete('Requires upcoming refactor of Repository DI');
     $app = $this->getApp();
     $this->addDefaultUser($app);
     $userName = '******';
     $salt = 'vinagre';
     $ipAddress = '8.8.8.8';
     //         $hostName = 'bolt.dev';
     $userAgent = 'Bolt PHPUnit tests';
     //         $cookieOptions = [
     //             'remoteaddr'   => true,
     //             'httphost'     => true,
     //             'browseragent' => false,
     //         ];
     //         $logger = $this->getMock('\Bolt\Logger\FlashLogger', ['info']);
     //         $logger->expects($this->atLeastOnce())
     //             ->method('info')
     //             ->with($this->equalTo('You have been logged out.'));
     //         $app['logger.flash'] = $logger;
     //         $app->boot();
     $userEntity = new Entity\Users();
     $userEntity->setUsername($userName);
     $tokenEntity = new Entity\Authtoken();
     $tokenEntity->setUsername($userName);
     $tokenEntity->setToken('gum-leaves');
     $tokenEntity->setSalt($salt);
     $tokenEntity->setIp($ipAddress);
     $tokenEntity->setUseragent('Bolt PHPUnit tests');
     $repo = $app['storage']->getRepository('Bolt\\Storage\\Entity\\Authtoken');
     $repo->save($tokenEntity);
     $token = new Token($userEntity, $tokenEntity);
     $request = Request::createFromGlobals();
     $request->server->set('REMOTE_ADDR', $ipAddress);
     $request->server->set('HTTP_USER_AGENT', $userAgent);
     $request->cookies->set($app['token.authentication.name'], $token);
     $app['request_stack']->push($request);
     $app['session']->start();
     $app['session']->set('authentication', $token);
     $accessControl = $this->getAccessControl();
     $this->assertInstanceOf('Bolt\\AccessControl\\AccessChecker', $accessControl);
     $mockAuth = $this->getMock('Bolt\\Storage\\Entity\\Authtoken', ['getToken']);
     $mockAuth->expects($this->once())->method('getToken');
     $app['storage']->setRepository('Bolt\\Storage\\Entity\\Authtoken', $mockAuth);
     $mockUser = $this->getMock('Bolt\\Storage\\Entity\\Users', ['getUser']);
     $mockUser->expects($this->never())->method('getUser');
     $app['storage']->setRepository('Bolt\\Storage\\Entity\\Users', $mockUser);
     $response = $accessControl->isValidSession($token);
     $this->assertFalse($response);
 }