Tag: fosuserbundle

Symfony2:在服务中注入当前用户

我正在尝试将当前login的用户注入到服务中。 我的目标是扩展一些树枝function,根据用户的喜好输出。 在这个例子中,我想使用用户特定的时区输出任何date函数。 似乎没有办法将当前用户注入到服务中,这对我来说似乎很奇怪。 注入安全上下文时,即使用户已login,它也没有令牌 我正在使用FOS用户包。 services: … twigdate.listener.request: class: App\AppBundle\Services\TwigDateRequestListener arguments: [@twig, @security.context] tags: – { name: kernel.event_listener, event: kernel.request, method: onKernelRequest } <?php namespace App\AppBundle\Services; use Symfony\Component\HttpKernel\HttpKernelInterface; use Symfony\Component\HttpKernel\Event\GetResponseEvent; class TwigDateRequestListener { protected $twig; function __construct(\Twig_Environment $twig, SecurityContext $context) { $this->twig = $twig; //$this->user = $context->get…; var_dump($context); die; } public function onKernelRequest(GetResponseEvent $event) […]

多个FOSUserBundle的实体pipe理器

要在Symfony中使用基于URL的不同实体pipe理器/连接(如果相当容易)。 使用以下路由configuration connection: pattern: /a/{connection} defaults: { _controller: AcmeTestBundle:User:index } 并从以下食谱; 如何使用多个实体pipe理器和连接 我的控制器看起来像这样; class UserController extends Controller { public function indexAction($connection) { $products = $this->get('doctrine') ->getRepository('AcmeStoreBundle:Product', $connection) ->findAll() ; ……………… 我将能够从不同的em /连接/数据库获取产品信息。 现在,如果我添加这样的东西到我的路由; login: pattern: /a/{connection}/login defaults: { _controller: FOSUserBundle:Security:login } 我怎样才能轻松使login使用连接定义在连接variables? 这个设置假定每个数据库都有自己的用户login信息(fos_user表)。 编辑:更新路由信息 EDIT2: 尽pipe如此,我还是使用PHP / Symfony / Doctrine,所以请原谅我,如果我完全错了。 我试图在FOS \ UserBundle \ Doctrine […]

Symfony2 $ user-> setPassword()更新密码为纯文本

我试图用一些用户对象预先填充数据库,但是当我调用$user->setPassword('some-password'); 然后保存用户对象,string“some-password”直接存储在数据库中,而不是哈希+密码。 我的DataFixture类: // Acme/SecurityBundle/DataFixtures/ORM/LoadUserData.php <?php namespace Acme\SecurityBundle\DataFixtures\ORM; use Doctrine\Common\DataFixtures\FixtureInterface; use Doctrine\Common\Persistence\ObjectManager; use Acme\SecurityBundle\Entity\User; class LoadUserData implements FixtureInterface { public function load(ObjectManager $manager) { $userAdmin = new User(); $userAdmin->setUsername('System'); $userAdmin->setEmail('system@example.com'); $userAdmin->setPassword('test'); $manager->persist($userAdmin); $manager->flush(); } } 和相关的数据库输出: id username email salt password 1 System system@example.com 3f92m2tqa2kg8cookg84s4sow80880g test

使用FOSUserBundle创build新用户失败

我试图从命令行创build一个新的用户,并得到这个错误: Warning: array_search() expects parameter 2 to be array, null given in /vendor/friendsofsymfony/user-bundle/FOS/UserBundle/Model/User.php line 368 当试图通过在web界面注册创build一个用户时,我得到这个: SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'salt' cannot be null 使用已经存在的用户login即可。 还更新configuration文件并更改密码。 只是创build新用户不起作用。 我在一个非常简单的设置中使用v 1.3.1,还没有find任何解决scheme。 有任何想法吗?

使用Symfony2 / Symfony3中的FOSUserBundle删除/用电子邮件replace用户名字段

我只想以电子邮件作为login模式,我不想拥有用户名。 symfony2 / symfony3和FOSUserbundle可以吗? 我在这里阅读http://groups.google.com/group/symfony2/browse_thread/thread/92ac92eb18b423fe 但是,然后我坚持两个违反约束。 问题是如果用户留下电子邮件地址空白,我得到两个约束违规: 请填入一个用户名 请input电子邮件 有没有一种方法来禁用validation给定的字段,或更好的方式从表单中删除一个字段?

在模板中访问已login的用户

我正在使用FOSuserbundle开始使用用户注册https://github.com/FriendsOfSymfony/FOSUserBundle 我已经注册/login和注销。 我现在要做的是抓取login的用户数据,并将其显示在我的网站的每个页面上。 像“Hi用户名”的标题types的东西。 这似乎是embedded一个控制器在我的应用程序/资源/ views / base.html.twig是最好的方式来做到这一点http://symfony.com/doc/current/book/templating.html#embedding-controllers 所以我写了我的控制器来访问用户configuration文件数据。 我想不出的是如何在我的embedded式控制器中访问FOS方法。 所以从我的Acme / UserBundle / Controller / UserController.php我想这样做: public function showAction() { $user = $this->container->get('security.context')->getToken()->getUser(); if (!is_object($user) || !$user instanceof UserInterface) { throw new AccessDeniedException( 'This user does not have access to this section.'); } return $this->container->get('templating') ->renderResponse('FOSUserBundle:Profile:show.html.'.$this->container ->getParameter('fos_user.template.engine'), array('user' => $user)); } 我从抢:vendor / bundles […]

Symfony2 AJAXlogin

我有一个例子,我试图创build一个使用Symfony2和FOSUserBundle的AJAXlogin。 我在我的security.yml文件中设置自己的failure_handler和failure_handler在form_login下。 这是class级: class AjaxAuthenticationListener implements AuthenticationSuccessHandlerInterface, AuthenticationFailureHandlerInterface { /** * This is called when an interactive authentication attempt succeeds. This * is called by authentication listeners inheriting from * AbstractAuthenticationListener. * * @see \Symfony\Component\Security\Http\Firewall\AbstractAuthenticationListener * @param Request $request * @param TokenInterface $token * @return Response the response to return */ public function onAuthenticationSuccess(Request $request, […]