1
我想在后端创建一个新表单来创建新用户。我创建我自己的AdminController与此功能:Symfony3 + FosUserBundle + EasyAdminBundle
public function createNewUsersEntity()
{
return $this->container->get('fos_user.user_manager')->createUser();
}
public function prePersistUsersEntity(User $user)
{
$this->get('fos_user.user_manager')->updatePassword($user);
$this->container->get('fos_user.user_manager')->updateUser($user, false);
}
public function preUpdateUsersEntity(User $user)
{
$this->get('fos_user.user_manager')->updatePassword($user);
$this->container->get('fos_user.user_manager')->updateUser($user, false);
}
我有问题:密码未加密。
在我config.yml文件我有这样的配置:
fos_user:
db_driver: orm # other valid values are 'mongodb', 'couchdb' and 'propel'
firewall_name: main
user_class: AppBundle\Entity\User
use_listener: false
在我security.yml文件:
应用程序/配置/ security.yml
安全: 编码器: 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
always_use_default_target_path: true
default_target_path: /admin
failure_path:/
# if you are using Symfony < 2.8, use the following config instead:
# csrf_provider: form.csrf_provider
logout: true
anonymous: true
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 }
,这是我的用户实体的结构:
public function __construct()
{
parent::__construct();
}
在另一只手,当用户添加到系统中,我需要它ROLE_USER ROL,但我不知道我能为变革做那。
两个问题:密码未加密,角色未定义。
@KrzysztofRaciniewski您是如何将ROLE_ADMIN显示为'Rola administratora'的?它是通过翻译还是树枝完成的,或者是其他的东西? – fadehelix
简单的翻译。在/ app/config/Resources/translations中创建文件“messages.en.yml”,然后添加一行:“ROLE_ADMIN:'your_translation_for_key'” –