标签: fosuserbundle

使用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万
查看次数

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

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

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

symfony fosuserbundle

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

Symfony2:记住我的身份验证时,CSRF令牌无效

我有用Symfony 2.8.11和FosUserBundle 2.0.0-beta1编写的应用程序.用户可以通过VPN或基本身份验证连接到站点.大多数情况下,他们在Windows 7上使用Internet Explorer 11.其中一些在站点内以随机形式遇到无效的CSRF令牌问题.问题是用户无法提交表单,即使刷新页面几次也是如此.

我怀疑问题是由日志中的会话持续刷新引起的:

{
    "created":1483610056, 
    "lastUsed":1483610056
} ["csrf","session_times"] []
Run Code Online (Sandbox Code Playgroud)

此外,我怀疑它是由记住我令牌的身份验证引起的(每个问题都已被该令牌验证):

[2017-01-05 10:54:16] security.DEBUG: Remember-me cookie detected. [] []
[2017-01-05 10:54:16] security.INFO: Remember-me cookie accepted. [] []
[2017-01-05 10:54:16] security.DEBUG: Populated the token storage with a remember-me token. [] []
Run Code Online (Sandbox Code Playgroud)

我的安全配置:

...
main:
    pattern: ^/
    form_login:
        provider: fos_userbundle
        csrf_token_generator: security.csrf.token_manager
        # if you are using Symfony < 2.8, use the following config instead:
        # csrf_provider: form.csrf_provider
    logout:       true
    anonymous:    true
    remember_me:
        name: "%session_cookie_remember_name%"
        domain: "%session_cookie_domain%"
        key:      "%secret%" …
Run Code Online (Sandbox Code Playgroud)

php session symfony csrf-protection fosuserbundle

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

无需重新设置即可更改远程用户的角色

我正在尝试使用FOSUserBundle更改用户的角色.问题是:如果用户同时登录,他必须重新登陆以查看新角色.

有解决方案吗

symfony fosuserbundle

8
推荐指数
2
解决办法
4926
查看次数

将FOSRestBundle与表单一起使用

Noob,有关FOSRestBundle,JMSSerializerBundle和模板的问题.

我正在尝试替换当前通过twig输出json的现有代码以使用FOSRestBundle.这是成功的,从Controller传递的内容最初是在数组中,但现在我正在尝试将表单传递给FOSRestBundle,结果是我的值永远不会被返回.

下面的代码复制了该场景

/**
 *  my sample get action
 * @View(templateVar="form")   
 */
public function getAction($id)
{
    ...         
     $form = $this->createFormBuilder(array('myValue' => 'SOMEVALUE'))
        ->add('myValue', 'hidden')
        ->getForm();

    $view = FOSView::create($form);
    $view->setFormat('json');

    return $this->get('fos_rest.view_handler')->handle($view);
}
Run Code Online (Sandbox Code Playgroud)

回报

{"children":{"_token":[],"myValue":[]}}
Run Code Online (Sandbox Code Playgroud)

我期望在这里看到的是:

{"children":{"_token": "mylongtoken","myValue": "SOMEVALUE"}}
Run Code Online (Sandbox Code Playgroud)

我一直把我的代码基于LiipHelloBundle中的示例,除非我错了,这与他们提供的示例匹配?我出错的任何想法?

php symfony fosuserbundle

8
推荐指数
1
解决办法
949
查看次数

用户权限更改后强制重新认证

在我的应用程序中,我可以在后端更改用户权限和角色.

当用户登录并删除用户的角色时,用户仍然可以访问实际上不允许访问的内容,因为他缺少该角色.仅当用户使用logout/login重新验证自己时,更改才会生效.

所以我的问题是,我可以访问登录用户的会话(不是我)吗?我知道我可以访问我自己的会话并销毁它,迫使我再次登录.但我希望得到任何登录用户的会话.这可能吗?我找不到任何相关的资源.

我使用PdoSessionStorage和symfony2.1以及fosuserbundle.

symfony fosuserbundle symfony-2.1

8
推荐指数
1
解决办法
1170
查看次数

如何从eventlistener获取从AJAX调用的userid

我正在使用symfony2和FOSUserBundle.

通常,我可以从Controller获取用户数据

$user = $this->get('security.context')->getToken()->getUser();
Run Code Online (Sandbox Code Playgroud)

要么

$user = $this->container->get('security.context')->getToken()->getUser(); 
Run Code Online (Sandbox Code Playgroud)

但是现在,我想从eventlistner获取从Ajax调用的userdata.

可能吗?或不?

我的来源在这里.

    namespace Acme\MemberBundle\EventListener;

    use ADesigns\CalendarBundle\Event\CalendarEvent;
    use ADesigns\CalendarBundle\Entity\EventEntity;
    use Doctrine\ORM\EntityManager;

    class CalendarEventListener
    {
        private $entityManager;

        public function __construct(EntityManager $entityManager)
        {
            $this->entityManager = $entityManager;
        }

        public function loadEvents(CalendarEvent $calendarEvent)
        {
            $startDate = $calendarEvent->getStartDatetime();
            $endDate = $calendarEvent->getEndDatetime();


           $user = $this->container->get('security.context')->getToken()->getUser();//it doesnt work

            // load events using your custom logic here,
            // for instance, retrieving events from a repository

            $companyEvents = $this->entityManager->getRepository('UserBundle:MutorSche')
                    ->createQueryBuilder('company_events')
                    ->where('company_events.event_datetime BETWEEN :startDate and :endDate')
                    ->setParameter('startDate', $startDate->format('Y-m-d H:i:s'))
                    ->setParameter('endDate', $endDate->format('Y-m-d …
Run Code Online (Sandbox Code Playgroud)

symfony fosuserbundle

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

如何在成功注册时分配角色?

我正在使用fos用户捆绑和pugx多用户捆绑.我已经阅读了所有文档,我是Symfony的新手.在pugx多用户包中,每个点都有一个样本,但只有一个:成功注册.

  • 用于生成表单的覆盖控制器样本=> ok
  • 用于生成表单的覆盖模板的示例=> ok
  • 覆盖成功注册样本的样本=>没有.

这是我的代码:

class RegistrationController extends BaseController
{
    public function registerAction(Request $request)
    {   
        $response = parent::registerAction($request);
        return $response;
    }   

    public function registerTeacherAction()
    {   
        return $this->container
            ->get('pugx_multi_user.registration_manager')
            ->register('MyBundle\Entity\PersonTeacher');
    }   

    public function registerStudentAction()
    {   
        return $this->container
            ->get('pugx_multi_user.registration_manager')
            ->register('MyBundle\Entity\PersonStudent');
    }   
}
Run Code Online (Sandbox Code Playgroud)

问题是->get('pugx_multi_user.registration_manager')返回经理.在fos用户覆盖控制器帮助中,他们得到a form或a form.handler.我很难将这些与pugx_multi_user管理器"链接"起来.

我应该在registerTeacherAction()为教师设置角色时设置什么代码,以及registerStudentAction()成功注册设置学生角色?

controller symfony fosuserbundle pugxmultiuserbundle

8
推荐指数
1
解决办法
3916
查看次数

fosuserbundle找不到"GET/login /"的路线

我最近使用composer更新了symfony2,现在我无法登录.这是相关文件.如果需要更多数据,请与我们联系.

应用程序/配置/ routing.yml中

app_admin:
resource: "@AppAdminBundle/Resources/config/routing.yml"
prefix:   /admin
host: dashboard.muchomonitor.com

app_website:
resource: "@AppWebsiteBundle/Resources/config/routing.yml"
prefix:   /
host: www.muchomonitor.com

app_monitor:
resource: "@AppMonitorBundle/Resources/config/routing.yml"
prefix:   /
host: dashboard.muchomonitor.com

fos_user_security:
resource: "@FOSUserBundle/Resources/config/routing/security.xml"
host: dashboard.muchomonitor.com

fos_user_security_reset:
resource: "@FOSUserBundle/Resources/config/routing/resetting.xml"
prefix: /login
host: dashboard.muchomonitor.com
Run Code Online (Sandbox Code Playgroud)

应用程序/配置/ 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
    user:
        entity: { class: App\MonitorBundle\Entity\User, property: username }

firewalls:
    main:
        pattern: ^/
        provider: user
        form_login:
            provider: fos_userbundle
            csrf_provider: form.csrf_provider
            login_path: fos_user_security_login
            check_path: fos_user_security_check
            default_target_path: /
        logout:       true
        anonymous:    true …
Run Code Online (Sandbox Code Playgroud)

routing symfony fosuserbundle

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

Symfony2 - 如何翻译来自FOSUserBundle的"错误凭据"登录错误消息?

如果存在登录错误,我想自定义错误消息("错误凭据").我这样做却无效.这是模板登录:

{% if error %}
<div>{{ error.message|trans }}</div>
{% endif %}<form action="{{ path('login_check') }}" method="post">
<label for="username">Username:</label>
<input type="text" id="username" name="_username" value="{{ last_username }}" />

<label for="password">Password:</label>
<input type="password" id="password" name="_password" />
<input type="hidden" name="_target_path" value="/account" />
<input type="submit" name="login" />
Run Code Online (Sandbox Code Playgroud)

文件config.yml我有这个:

framework:
#esi:             ~
translator:      { fallback: "%locale%" }
Run Code Online (Sandbox Code Playgroud)

在parametre.yml我有这个:

locale: en
Run Code Online (Sandbox Code Playgroud)

我在MyBundle/Resources/translations/messages.en.ymy目录中添加了该文件:

security:
login:
    username: "Username:"
    password: "Password:"
    submit: Login
    forgot_username: "Forgot username"
    forgot_password: "Forgot password"
    registration: register
    # Security
    "Bad credentials": "Your user name or password are …
Run Code Online (Sandbox Code Playgroud)

symfony fosuserbundle

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