1

我正在开始一个新项目,使用 symfony2 架构和有用的 FosUserBundle 来处理我的用户。

在我的应用程序中,我有 2 种不同类型的用户,它们是:用户和企业。

我创建了一个用户表单(其中嵌入了表单)。现在我想创建一个 EntrepriseForm (具有不同的嵌入式表单),但我被卡住了,因为 FosUserConfiguration 只允许 1 个注册表单类型。

如果有帮助,我的 config.yml 如下所示:

fos_user:
db_driver: orm # other valid values are 'mongodb', 'couchdb' and 'propel'
firewall_name: main
user_class: Digin\UserBundle\Entity\User
registration:
    confirmation:
        from_email: # Use this node only if you don't want the global email address for the confirmation email
            address:        xxx@xxx.org
            sender_name:    xxx
        enabled:    true # change to true for required email confirmation
        template:   FOSUserBundle:Registration:email.txt.twig
    form:
        type:               mybundle_user_registration
        handler:            fos_user.registration.form.handler.default
        name:               fos_user_registration_form
        validation_groups:  [Registration]

关于我应该怎么做的任何想法?

4

1 回答 1

1

在您的位置上,我将在您的位置添加一个新角色security.yml(记住以ROLE_symfony 开头忽略其他角色)。然后添加侦听器InteractiveLoginListener以在登录不同角色后执行一些额外的重定向。然后添加JMSSecurityExtraBundle,这将帮助您仅通过注释来验证 accions 和控制器中的访问:

use JMS\SecurityExtraBundle\Annotation\PreAuthorize;

class MyService
{
    /** @PreAuthorize("hasRole('A') or (hasRole('B') and hasRole('C'))") */
    public function secureMethod()
    {
        // ...
    }
}

查看文档:http: //jmsyst.com/bundles/JMSSecurityExtraBundle/master/installation

于 2012-11-23T08:36:53.417 回答