标签: fosuserbundle

FOSUserBundle和ACL业务角色

我本周末开始学习Symfony 2.我没有遇到任何问题,因为我认为框架已有详细记录.

我正在使用FOSUserBundle包进行ACL.我想知道是否有可能使它类似于Yii框架:

$bizRule='return Yii::app()->user->id==$params["post"]->authID;';
$task=$auth->createTask('updateOwnPost','update a post by author himself',$bizRule);
$task->addChild('updatePost');
Run Code Online (Sandbox Code Playgroud)

您可能会在上面的代码段中看到所有详细信息.

如何实现与Symfony 2类似的功能?这可能吗?

acl yii symfony fosuserbundle

6
推荐指数
1
解决办法
7179
查看次数

FOSFacebookBundle和FOSUserBundle

我正在尝试设置FOSFacebookBundle和FOSUserBundle,因此用户可以使用注册帐户或Facebook帐户登录.

这里有相关代码:

config.yml:

fos_user:
db_driver: orm 
firewall_name: public
user_class: Fam\DiaBundle\Entity\User
from_email:
    address:        info@famdia.com
    sender_name:    Staff
registration:
    confirmation:
        enabled:    true

fos_facebook:

    file:   %kernel.root_dir%/../vendor/facebook/src/base_facebook.php
    alias:  facebook
    app_id: 1234567890
    secret: abcdefg1234567890
    cookie: true
    permissions: [email]
    culture: us_US
Run Code Online (Sandbox Code Playgroud)

security.yml

#
# app/config/security.yml
#
#

services:
    my.facebook.user:
        class: Fam\Dia\Security\User\Provider\FacebookProvider
        arguments:
            facebook: "@fos_facebook.api"
            userManager: "@fos_user.user_manager"
            validator: "@validator"
            container: "@service_container"
security:
    factories:
        - "%kernel.root_dir%/../vendor/bundles/FOS/FacebookBundle/Resources/config/security_factories.xml"

    providers:
        chain_provider:
            providers: [fos_userbundle, my_fos_facebook_provider]
        fos_userbundle:
            id: fos_user.user_manager
        my_fos_facebook_provider:
            id: my.facebook.user

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

    firewalls:
        public:
          pattern:   ^/
          fos_facebook:
            app_url: "http://apps.facebook.com/dia/"
            server_url: "http://diafam.com/facebookApp/" …
Run Code Online (Sandbox Code Playgroud)

symfony fosuserbundle

6
推荐指数
1
解决办法
5871
查看次数

无法在测试环境中从安全上下文中获取用户

我正在尝试测试一个API调用方法,该方法使用Basic Auth进行安全化,并且需要从安全上下文中检索用户.

我的config_test.yml文件(我正在使用内存数据库进行测试env):

imports:
    - { resource: config_dev.yml }

doctrine:
    dbal:
        driver: pdo_sqlite
        path: :memory:
        memory: true
    orm:
        auto_generate_proxy_classes: %kernel.debug%
        auto_mapping: true

framework:
    test: ~
    session: ~ 
    profiler:
        enabled: false

web_profiler:
    toolbar: false
    intercept_redirects: false

swiftmailer:
    disable_delivery: true
Run Code Online (Sandbox Code Playgroud)

我创建了一个测试,我按如下方式实例化客户端:

    $options =  array(
        'environment' => 'test',
        'debug'       => true,
    );

    $this->client = static::createClient($options);
Run Code Online (Sandbox Code Playgroud)

测试看起来像:

public function testProfileAction()
{
    $mockUser = new User();
    $mockUser->setUsername("user");
    $mockUser->setEmail("user@user.com");
    $mockUser->setName("User");
    $mockUser->setSurname("User");
    $mockUser->setPlainPassword("1234567890");
    $this->em->persist($mockUser);
    $this->em->flush();

    $crawler = $this->client->request('GET', '/api/1/user/profile', array(), array(), array(
        'PHP_AUTH_USER' => 'user',
        'PHP_AUTH_PW'   => …
Run Code Online (Sandbox Code Playgroud)

symfony fosuserbundle symfony-2.2

6
推荐指数
1
解决办法
2650
查看次数

我自己的登录表单上的CSRF令牌无效

我正在使用FOSUserBundle处理symfony应用程序.如果我没有经过身份验证,我希望在菜单栏中有一个下拉登录表单,它具有与/ login下的完全不同的样式.

我收到'无效的CSRF令牌'.我是symfony2的完全新手,所以也许我犯了一个明显的错误,但我找不到谷歌搜索的解决方案.这是我试过的:

控制器:

<?php

namespace RoiRodriguez\CustomUserBundle\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\Security\Core\SecurityContext;

class DefaultController extends Controller {

    /**
     * Para requests internos, renderiza la barra de navegación.
     * No tiene ruta.
     */
    public function navigationAction() {
        $params = array (
                'csrf_token' => '',
                'last_username' => '' 
        );

        if ($this->container->get ( 'security.context' )->isGranted ( 'IS_AUTHENTICATED_FULLY' )) {
            $session = $this->getRequest ()->getSession ();
            $params ['last_username'] = (null === $session) ? '' : $session->get ( SecurityContext::LAST_USERNAME );
            $params ['csrf_token'] = $this->container->get ( …
Run Code Online (Sandbox Code Playgroud)

symfony fosuserbundle

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

如何在Symfony AdvancedUserInterface中使用凭证过期属性?

在Symfony 2.4项目中,我们的客户希望强制用户每N天更改一次密码.我们看到数据库中有"credentials_expired"和"credentials_expire_at"列,并且在UserChecker类中抛出了一个似乎用于此目的的AccountExpiredException,但我找不到任何关于如何启用或配置此文档的文档特征.

  • 在每次密码更改后的N天后,credentials_expire_at列如何填充日期?
  • 如果密码过期,用户如何更改密码?
  • 如何提前几天警告用户关于passoword到期?
  • 是否可以禁止重复使用上一个密码?

symfony fosuserbundle

6
推荐指数
1
解决办法
3581
查看次数

在Doctrine DQL中选择count(),使用左连接manyToMany单向关系,其中用户没有关系特定组

情境:我试图在DQL中为不在特定组中的用户选择count().

标准多对多之间的单向关系UserGroup实体从FOSUserBundle(和SonataUserBundle).系统:Symfony 2.5,Doctrine 2.4.

实体用户

PS这不是真正的代码复制.这是不可能的,因为有几个层以不同的格式和位置扩展不同的配置文件,所以如果你发现错误类型,这不是问题.

namespace RAZ\UserBundle\Entity;
/**
 * @ORM\Table(name="fos_user_user")
 */
class User
{
    /**
     * @var integer
     *
     * @ORM\Column(name="id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    protected $id;

    /**
     * @var Collection
     *
     * @ORM\ManyToMany(targetEntity="Group")
     * @ORM\JoinTable(name="fos_user_user_group")
     */
    protected $groups;
}
Run Code Online (Sandbox Code Playgroud)

实体组

namespace RAZ\UserBundle\Entity;
/**
 * @ORM\Table(name="fos_user_group")
 */
class Group
{
/**
     * @var integer
     *
     * @ORM\Column(name="id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    protected $id;
}
Run Code Online (Sandbox Code Playgroud)

问题:这甚至可以在DQL中完成吗?

问题非常类似于: 如何获得多对多关系中没有与DQL和Doctrine相对应的链接实体的实体? …

sql dql symfony doctrine-orm fosuserbundle

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

加密密码FOSUserBundle

我有一个使用FOSUSerBundle来管理用户的symfony项目,现在我需要通过Simple Rest Webservice访问数据库,注册中的加密是:Sha512,我如何获得与我尝试的FOS相同的哈希结果:

hash('sha512',($salt.$password));
Run Code Online (Sandbox Code Playgroud)

hash('sha512',($password.$salt));
Run Code Online (Sandbox Code Playgroud)

但它不起作用!有什么建议 ?

php rest symfony fosuserbundle

6
推荐指数
1
解决办法
8961
查看次数

使用FOSRestBundle REST API设置注册FOSUserBundle

问题已解决,请检查我的答案.

我正在我的Symfony2.7 rest api上建立一个注册端点.我正在使用FosRestBundle和FosUserBundle

这是用户模型:

<?php

namespace AppBundle\Entity;

use FOS\UserBundle\Model\User as BaseUser;
use Doctrine\ORM\Mapping as ORM;

/**
 * @ORM\Entity
 * @ORM\Table(name="fos_user")
 */
class User extends BaseUser {

    /**
     * @ORM\Id
     * @ORM\Column(type="integer")
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    protected $id;






    public function __construct() {
        parent::__construct();
        // your own logic
    }

}
Run Code Online (Sandbox Code Playgroud)

\ 这是UserType表单: \

class UserType extends AbstractType
{
    /**
     * @param FormBuilderInterface $builder
     * @param array $options
     */
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('email', 'email')
            ->add('username', null)
            ->add('plainPassword', 'repeated', …
Run Code Online (Sandbox Code Playgroud)

php symfony fosuserbundle fosrestbundle symfony-2.7

6
推荐指数
1
解决办法
7350
查看次数

Symfony 2 FOSUserBundle,具有休息登录和注册功能

我经历了很多stackoveflow问题和文章,但找不到合适的答案.

我正在使用fosuserbundle,hwiouthbundle和lexikjwt bundle.

我正在开发一个基于symfony的api,它将由Android应用程序和角度应用程序使用.

现在我需要注册和登录系统fosuserbundle facebook登录hwiouthbundle和api保护lexikjwt捆绑.

我已经实现了fosuserbundle和hwiouthbundke,两者都没有编写用户控制器.但我需要休息而不是形式.但我无法输入:在路由器中休息.

现在我如何登录,用fosuserbundle注册用户休息?我不想使用fosouth服务器.只需要注册和登录api而不是从网上休息.

symfony fosuserbundle lexikjwtauthbundle

6
推荐指数
1
解决办法
8569
查看次数

作曲家冲突和Symfony 3

我是作曲家和symfony的新手,我已经开始了一个symfony3项目.事情进展顺利,但现在作曲家不会更新我的依赖.我一直在寻找解决方案3个小时.

这是我的控制台日志:

  Problem 1
- sonata-project/admin-bundle dev-master requires sonata-project/block-bundle 3.x-dev@dev -> satisfiable by sonata-project/block-bundle[3.x-dev] but these conflict with your requirements or minimum-stability.
- sonata-project/admin-bundle dev-master requires sonata-project/block-bundle 3.x-dev@dev -> satisfiable by sonata-project/block-bundle[3.x-dev] but these conflict with your requirements or minimum-stability.
- Installation request for sonata-project/admin-bundle dev-master -> satisfiable by sonata-project/admin-bundle[dev-master].
Run Code Online (Sandbox Code Playgroud)

还有我的composer.json要求:

    "require": {
    "php": ">=5.5.9",
    "symfony/symfony": "3.0.*",
    "doctrine/orm": "^2.5",
    "doctrine/doctrine-bundle": "^1.6",
    "doctrine/doctrine-cache-bundle": "^1.2",
    "symfony/swiftmailer-bundle": "^2.3",
    "symfony/monolog-bundle": "^2.8",
    "sensio/distribution-bundle": "^5.0",
    "sensio/framework-extra-bundle": "^3.0.2",
    "incenteev/composer-parameter-handler": "^2.0",
    "friendsofsymfony/user-bundle": "dev-master",
    "sonata-project/admin-bundle": "dev-master",
    "sonata-project/doctrine-orm-admin-bundle": "dev-master"
}, …
Run Code Online (Sandbox Code Playgroud)

php symfony fosuserbundle composer-php sonata-admin

6
推荐指数
1
解决办法
1531
查看次数