我只是想修改更改密码页面的外观.我唯一想不通的是被称为CurrentPassword字段的内容.
{{ form_widget(form.plainPassword.first, {'attr': {'class': 'txtRegisterEmail','placeholder': 'Password'} }) }}
{{ form_widget(form.plainPassword.second,{'attr': {'class': 'txtRegisterEmail','placeholder': 'Verify password'} }) }}
Run Code Online (Sandbox Code Playgroud) 是否可以/login仅为用户执行自动重定向到特定路由的某个路由(即/)AUTHENTICATED?如何?
我正在使用FOSUserBundle.
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
csrf_provider: form.csrf_provider
login_path: /accedi
check_path: /login_check
default_target_path: /
oauth:
resource_owners:
facebook: "/login/check-facebook"
google: "/login/check-google"
login_path: /accedi
failure_path: /accedi
default_target_path: /
oauth_user_provider:
service: my_user_provider
logout:
path: /logout
target: /
invalidate_session: false
anonymous: ~
login:
pattern: ^/login$
security: false
remember_me:
key: "%secret%"
lifetime: 31536000 # 365 days in seconds
path: /
domain: ~
oauth_authorize:
pattern: …Run Code Online (Sandbox Code Playgroud) 我即将开始尝试在我正在使用的symfony2项目中向我的用户实体添加个人资料图片字段FOSUserBundle.我觉得这应该很简单,但是,我没有找到任何有用的文档来解释如何做到这一点.
目前,我正计划在我的表单对象(我从通用ProfileEdit表单中扩展)添加一个未映射的字段,该字段采用上传的文件.然后,我将创建一个FOSUserEvents::PROFILE_EDIT_SUCCESS或之前的事件监听器FOSUserEvents::PROFILE_EDIT_COMPLETED,它将采用表单,处理文件上载并将上载文件的路径(使用获取公共URL和绝对路径的方法)保存到我的User对象,然后再添加向Response flashbag发送消息说它成功或不成功.这真的是正确/最佳实践方式吗?或者我错过了什么?这个功能真的还没有包含在FOSUserBundle中吗?如果是这样的话,我没有找到它的文档,但是如果它是......那就会喜欢它
任何帮助/提示/伏都教建议将非常感谢!
我们目前正在使用Symfony 2和FOS/UserBundle进行用户身份验证.
我想在没有登录的情况下检查给定的用户名/密码组合是否有效.这是因为另一个人当前已登录,但是例如需要执行特定操作,需要由具有更高许可的人员来完成.
基本上我希望其他用户除了当前记录的人之外还执行不同的控制器操作.
如果有更好的方法,请告诉我
我正在尝试使用FOSUserBundle进行AJAX身份验证.
我创建了一个Handler目录,其中包含AuthenticationHandler class:
<?php
namespace BirdOffice\UserBundle\Handler;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\RedirectResponse;
use Symfony\Component\Routing\RouterInterface;
use Symfony\Component\HttpFoundation\Session\Session;
use Symfony\Component\Security\Core\Authentication\Token\TokenInterface;
use Symfony\Component\Security\Core\Exception\AuthenticationException;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Security\Core\SecurityContextInterface;
use Symfony\Component\Security\Http\Authentication\AuthenticationSuccessHandlerInterface;
use Symfony\Component\Security\Http\Authentication\AuthenticationFailureHandlerInterface;
class AuthenticationHandler implements AuthenticationSuccessHandlerInterface, AuthenticationFailureHandlerInterface
{
private $router;
private $session;
/**
* Constructor
*
* @param RouterInterface $router
* @param Session $session
*/
public function __construct( RouterInterface $router, Session $session )
{
$this->router = $router;
$this->session = $session;
}
/**
* onAuthenticationSuccess
*
* @param Request $request
* @param TokenInterface $token
* …Run Code Online (Sandbox Code Playgroud) 我无法通过sonataadmin仪表板更新用户密码.
我使用symfony2 FosUserBundle2.0 SonataAdminBundle(但不使用SonataUserBundle)并按照文档进行操作.
MyUserBundle\Admin\UserAdmin.php class UserAdmin像这样扩展Admin
protected function configureFormFields(FormMapper $formMapper)
{
$formMapper
......
->add('plainPassword', 'repeated', array(
'type' => 'password',
'options' => array('translation_domain' => 'FOSUserBundle'),
'first_options' => array('label' => 'form.password'),
'second_options' => array('label' => 'form.password_confirmation'),
'invalid_message' => 'fos_user.password.mismatch',
'required' => false,
)
)
..
}
Run Code Online (Sandbox Code Playgroud)
使用sonataadminbundle仪表板创建新用户时没有问题,但是当我使用仪表板更新密码时,DB中的密码不会更改.
其他人可以更新但密码,我不知道为什么.没有任何错误信息.
我是symfony2的新手,有人帮我吗?
感谢kwozny,现在我修复它〜 我不改变函数configureFormFields代码,只需按照kwozny的建议,添加以下代码.我不知道为什么,但我工作!我可以更新密码,当我更新其他密码(密码字段为空)时,密码不会更改.
public function prePersist($object)
{
parent::prePersist($object);
}
public function preUpdate($object)
{
parent::preUpdate($object);
}
Run Code Online (Sandbox Code Playgroud) 我有一个带有两个防火墙的Symfony应用程序,一个用于管理员,一个用于普通用户.
admin:
provider: admin
# etc
main_site:
form_login:
provider: fos_userbundle
csrf_provider: form.csrf_provider
Run Code Online (Sandbox Code Playgroud)
我希望管理员用户能够冒充普通用户.我怎么能这样做,因为他们使用单独的防火墙和单独的用户提供商?
我正在基于角色和权限在Symfony 3中构建一个Admin面板.将为每个管理员分配一个角色(或多个角色),然后他将能够根据分配给该角色的权限执行操作.
为了给你一个想法,这是一个例子:
USER_MANAGEMENT_WITHOUT_DELETE拥有user_create和的权限user_edit.USER_MANAGEMENT_WITH_DELETE有权限的角色user_create,user_edit和user_deleteUSER_MANAGEMENT_WITH_DELETE能add,edit并delete在用户那里的管理员与角色USER_MANAGEMENT_WITHOUT_DELETE只能add和edit用户,但不能删除它们.我搜索并发现了有关FOSUserBundle和 ACL的信息.一些推荐的ACL,而其他人说最好使用FOSUserBunder
我还阅读了FOSUserBunder的文档以及它如何在roles列中存储角色,类似的东西a:1:{i:0;s:10:"ROLE_ADMIN";},但没有提到任何关于权限的内容.所以这是我的疑问:
FOSUserBunder,如何管理权限?我正在使用Doctrine和FOS为用户帐户创建一个symfony项目.
我有http://localhost:8000/register/正确的路径并显示我的页面.
但是,如果我将它添加为树枝中的路径,如下所示:
<p><a href="{{ path('register') }}">No Account? Register here!</a></p>
我收到这个错误
在呈现模板期间抛出了异常("无法生成>为命名路径生成URL"/ register"因为此类路由不存在.").
我已经在routing.yml中获得了所有需求信息
app:
resource: "@AppBundle/Controller/"
type: annotation
fos_user:
resource: "@FOSUserBundle/Resources/config/routing/all.xml"
fos_user_security:
resource: "@FOSUserBundle/Resources/config/routing/security.xml"
fos_user_profile:
resource: "@FOSUserBundle/Resources/config/routing/profile.xml"
prefix: /profile
fos_user_register:
resource: "@FOSUserBundle/Resources/config/routing/registration.xml"
prefix: /register
fos_user_resetting:
resource: "@FOSUserBundle/Resources/config/routing/resetting.xml"
prefix: /resetting
fos_user_change_password:
resource: "@FOSUserBundle/Resources/config/routing/change_password.xml"
prefix: /profile
Run Code Online (Sandbox Code Playgroud)
这可能是什么问题,我该如何解决?
我从 Symfony 的旅程开始。
在这一点上,我试图保护我的身份验证路由(我正在使用 FOSUserBundle),所以我这样做:
access_control:
- { path: ^/logowanie$, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/rejestracja, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/resetowanie-hasla, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/backstage/, role: ROLE_ADMIN }
- { path: ^/profile/, role: ROLE_USER }
Run Code Online (Sandbox Code Playgroud)
但是,无论是否登录,我都可以访问这些路线。
我的坏在哪里?
# To get started with security, check out the documentation:
# https://symfony.com/doc/current/security.html
security:
encoders:
FOS\UserBundle\Model\UserInterface: bcrypt
role_hierarchy:
ROLE_ADMIN: ROLE_USER
ROLE_SUPER_ADMIN: ROLE_ADMIN
providers:
fos_userbundle:
id: fos_user.user_provider.username
firewalls:
main:
pattern: ^/
form_login:
provider: fos_userbundle
csrf_token_generator: security.csrf.token_manager
check_path: fos_user_security_check
login_path: …Run Code Online (Sandbox Code Playgroud) fosuserbundle ×10
symfony ×10
php ×6
acl ×1
ajax ×1
firewall ×1
javascript ×1
permissions ×1
security ×1
sonata-admin ×1
twig ×1