标签: fosuserbundle

FOSUserBundle并记住我

我在Symfony2中使用FOSUserBundle进行身份验证.一切正常,除了"记住我".我的security.yml看起来像这样:

security:
providers:
    fos_userbundle:
        id: fos_user.user_manager

encoders:
    'FOS\UserBundle\Model\UserInterface': sha512

firewalls:
    main:
        pattern: ^/
        form_login:
            provider: fos_userbundle
        logout:       true
        anonymous:    true
        remember_me:
            key:      aSecretKey
            lifetime: 3600
            path:     /
            domain:   ~

access_control:
    - { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
    - { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
    - { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
    - { path: ^/admin, role: ROLE_ADMIN }

role_hierarchy:
    ROLE_ADMIN:       ROLE_USER
    ROLE_SUPER_ADMIN: ROLE_ADMIN
Run Code Online (Sandbox Code Playgroud)

有谁知道如何解决这个问题.

remember-me symfony fosuserbundle

9
推荐指数
3
解决办法
1万
查看次数

Symfony2在功能测试中登录FOS UserBundle

如何登录内部测试以便能够执行特定于用户的操作?

phpunit unit-testing symfony fosuserbundle

9
推荐指数
2
解决办法
6196
查看次数

使用datafixtures和fosuserbundle创建管理员用户

我正在尝试从夹具中创建一个新的用户管理器.我正在使用FOSUserBundle和Symfony2.

$userManager = $this->container->get('fos_user.user_manager');

//$userAdmin = $userManager->createUser();

$userAdmin = new UserAdmin();
$userAdmin->setUsername('francis');
$userAdmin->setEmail('francis@francis.com');
$userAdmin->setEnabled(true);
$userAdmin->setRoles(array('ROLE_ADMIN'));

$userManager->updateUser($userAdmin, true);
Run Code Online (Sandbox Code Playgroud)

我总是收到这个错误:

[ErrorException]                                         
Notice: Undefined property:     
INCES\ComedorBundle\DataFixtures\ORM\LoadUserAdminData::$container in 
/public_html/Symfony/src/INCES/ComedorBundle/DataFixtures/ORM/LoadUserAdminData.php line 16  
Run Code Online (Sandbox Code Playgroud)

symfony fosuserbundle

9
推荐指数
1
解决办法
1万
查看次数

具有ACL的Symfony2组权限

在我工作的地方,我们正在设计一个webapp,其中用户可能属于多个组,并且每个组都可以访问高级未知的一组资源.此外,用户可以进入或离开组和组可以获取或失去对资源的访问权限,因此整个权限授予系统需要是动态的.

我们正在使用Symfony2和FOSUserBundle.

我们喜欢ACL系统的工作方式,但我们找不到将其应用于Group对象的方法.

有没有人用Symfony做过类似的事情?或者您对如何以其他方式实施它有任何建议吗?

acl user-permissions symfony fosuserbundle

9
推荐指数
1
解决办法
3466
查看次数

如何使用FOSUserBundle为其他用户设置管理员和另一个用户的登录表单?

当有管理员用户的后端时,有一个登录表单,同时在我们网站的公共区域为普通用户提供正常的登录表单,这很有意思.

这可能使用FOSUserBundle吗?如何以"Symfony2"的方式完成?

symfony fosuserbundle

9
推荐指数
1
解决办法
7090
查看次数

symfony2:使用fosuserbundle登录后使用referer

我有问题fosuserbundle在登录成功后将用户重定向到referer

应用程序/配置/ security.yml

security:
    encoders:
        FOS\UserBundle\Model\UserInterface: sha512

    role_hierarchy:
        ROLE_ADMIN:       ROLE_USER
        ROLE_SUPER_ADMIN: ROLE_ADMIN

    providers:
        fos_userbundle:
            id: fos_user.user_provider.username_email

    firewalls:
        main:
            pattern: ^/

            form_login:
                provider: fos_userbundle
                login_path:     fos_user_security_login
                use_referer:                    true
                check_path:     fos_user_security_check
                csrf_provider: form.csrf_provider
            logout:
                path: fos_user_security_logout
            anonymous:    true

    access_control:
        - { path: ^/%locale%/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
Run Code Online (Sandbox Code Playgroud)

和config.yml:

fos_user:
    db_driver: orm # other valid values are 'mongodb', 'couchdb' and 'propel'
    firewall_name: main
    user_class: Acme\UserBundle\Entity\User

    profile:
      form:
          type: Acme_user_registration
    registration: …
Run Code Online (Sandbox Code Playgroud)

login referer symfony fosuserbundle

9
推荐指数
1
解决办法
5128
查看次数

从FOSUserBundle中的登录用户获取用户标识

我正在尝试创建一个任务管理器,我需要能够获取当前登录用户的用户ID,以便在创建任务时,用户ID也会输入到数据库中.我不能让它工作它一直告诉我,call to undefined function getUser()我不认为我必须定义它,我认为它是内置的.

有人可以帮我解决这个问题,我将不胜感激!

这是创建任务的函数

<?php

namespace Starnes\TaskBundle\Controller;

use Symfony\Component\HttpFoundation\Request;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Method;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
use Starnes\TaskBundle\Entity\Task;
use Starnes\TaskBundle\Form\TaskType;
use Starnes\UserBundle\Entity\User;

/**
 * Task controller.
 *
 * @Route("/task")
 */
class TaskController extends Controller
{

    /**
     * Lists all Task entities.
     *
     * @Route("/", name="task")
     * @Method("GET")
     * @Template()
     */
    public function indexAction()
    {
        $em = $this->getDoctrine()->getManager();

        $entities = $em->getRepository('StarnesTaskBundle:Task')->findAll();

        return array(
            'entities' => $entities,
        );
    }
    /**
     * Creates a new Task entity. …
Run Code Online (Sandbox Code Playgroud)

php symfony fosuserbundle

9
推荐指数
3
解决办法
2万
查看次数

在FOSUserBundle中管理用户/角色/组

我正在开发一个简单的CRUD来管理我正在工作的应用程序的用户/角色/组.管理我正在使用的用户FOSUserBundle.我想做的事可以通过以下几种方式完成:

  • 将角色分配给组,然后将用户分配给这些组
  • 直接为用户分配角色

但我不知道怎么做.我知道FOSUser BaseUser类已经有了一个列,roles并且在FOSUser 的文档中解释了如何ManyToMany在用户和组之间建立关系,但是没有谈论任何关于角色的内容.想到的唯一想法是创建一个实体来管理角色以及一个用于相同目的的表单,如下所示:

角色实体

use Symfony\Component\Security\Core\Role\RoleInterface;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\ORM\Mapping as ORM;

/**
 * @ORM\Table(name="fos_role")
 * @ORM\Entity(repositoryClass="UserBundle\Entity\Repository\RoleRepository")
 * 
 * @see User
 * @see \UserBundle\Role\RoleHierarchy
 * 
 */
class Role implements RoleInterface
{
    /**
     * @ORM\Column(name="id", type="integer")
     * @ORM\Id()
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;

    /**
     * @ORM\Column(name="name", type="string", length=80, unique=true)
     */
    private $name;

    /**
     * @ORM\ManyToOne(targetEntity="Role", inversedBy="children")
     * @ORM\JoinColumn(name="parent_id", referencedColumnName="id", nullable=true)
     * @var Role[]
     */
    private $parent;

    /**
     * @ORM\OneToMany(targetEntity="Role", …
Run Code Online (Sandbox Code Playgroud)

php usergroups user-roles symfony fosuserbundle

9
推荐指数
1
解决办法
3万
查看次数

如何摆脱"你必须配置由防火墙处理的检查路径"错误与GET请求?

当我通过常规方式验证(使用登录表单)时,它可以正常工作.我只有在/check_form通过GET方法直接访问时才会收到此错误,在这种情况下抛出异常:

您必须使用安全防火墙配置中的form_login配置防火墙处理的检查路径.

以下是相关security.yml部分:

firewalls:
    acme_area:
        pattern:    ^/(acme|admin)/
        provider: fos_userbundle
        form_login:
            provider: fos_userbundle
            csrf_provider: form.csrf_provider
            login_path: acme_login
            check_path: /acme/login_check
        logout:
            path: /acme/logout
            target: acme_login
        anonymous: true
Run Code Online (Sandbox Code Playgroud)

我使用2.3,因此没有methods适用的选项(虽然我不知道它是否会有所帮助).

这不是一个真正的问题,因为这个错误不能破坏正确的使用方法,但是当一些勤奋的机器人访问该站点时它会污染错误日志并且它只是不整洁.所以,我想知道我可以更改哪个配置选项来摆脱这个错误.

为了降低这一点,似乎我想要抛出一些4xx错误而不是500.理想情况下它应该是405 Method Not Allowed,但404冷却也是如此.

编辑:

正如我从下面的Alex的答案中了解到的那样,这是因为POST请求由防火墙和Controller的GET请求处理.因此,似乎checkAction()必须扩展默认值才能处理两种情况:

  1. 当请求是POST但没有firewal条目存在(已经被nandled)
  2. 当防火墙入口存在但请求是GET(我的情况)

php symfony fosuserbundle

9
推荐指数
1
解决办法
694
查看次数

FOSUserBundle管理EasyAdminBundle(("用户"实体必须使用"class"选项定义其关联的Doctrine实体类))Symfony

我正在使用Symfony 3.4与FOSUserBundle~2.0和EasyAdminBundle ^ 1.17.一切正常.我可以登录系统并创建用户((当然有推荐行))我使用这个toutaril 但是当我想在EasyAdminBundle.i管理时有这个错误

The "User" entity must define its associated Doctrine entity class using the "class" option.
Run Code Online (Sandbox Code Playgroud)

这是我的config.yml

..
.
.
entities:
            User:
            label: 'user'
            list:
                 actions:
                        - {name: 'delete', label: 'del' }
                        - {name: 'edit' , lable: 'edite'}
                 title: 'user'
                 fields:
                        - username
                        - email
                        - enabled
                        - lastLogin
            class: AppBundle\Entity\User
            form:
                fields:
                    - username
                    - email
                    - enabled
                    - lastLogin
                    # if administrators are allowed to edit users' passwords and roles, add this:
                    - { …
Run Code Online (Sandbox Code Playgroud)

php symfony fosuserbundle symfony-3.4 easyadmin

9
推荐指数
1
解决办法
494
查看次数