/** * 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; }
/** * Set user as enabled if user is new * * @param Entity\Users $usersEntity */ protected function enableUser(Entity\Users $usersEntity) { if ($usersEntity->getId() === null) { $usersEntity->setEnabled(true); } }
/** * Delete active session files for a user. * * @param Entity\Users $user */ private function deleteSessions(Entity\Users $user) { $savePath = $this->sessionStorage->getOptions()->get('save_path'); try { $sessionFiles = $this->filesystem->find()->files()->in($savePath); } catch (FileNotFoundException $e) { return; } /** @var \Bolt\Filesystem\Handler\File $sessionFile */ foreach ($sessionFiles as $sessionFile) { $data = unserialize($sessionFile->read()); if (!isset($data['_sf2_attributes']['authentication'])) { continue; } if (!$data['_sf2_attributes']['authentication'] instanceof \Bolt\AccessControl\Token\Token) { continue; } /** @var \Bolt\AccessControl\Token\Token $token */ $token = $data['_sf2_attributes']['authentication']; if ($token->getUser()->getId() === $user->getId()) { $sessionFile->delete(); } } }
/** * Set user as enabled if user is new * * @param Entity\Users $usersEntity */ protected function enableUser(Entity\Users $usersEntity) { if ($usersEntity->getShadowSave()) { return; } elseif ($usersEntity->getId() === null) { $usersEntity->setEnabled(true); } }