meuhmeuhconcept / fos-user-bundle
MeuhMeuhConcept 的 FosUserBundle 实现
Requires
- php: ~7.0
- doctrine/orm: ^2.5
- friendsofsymfony/user-bundle: ~2.0
- symfony/cache: ~3.4.38
- symfony/config: ~3.4.38
- symfony/dependency-injection: ~3.4.38
- symfony/doctrine-bridge: ~3.4.38
- symfony/event-dispatcher: ~3.4.38
- symfony/framework-bundle: ~3.4.38
- symfony/http-foundation: ~3.4.38
- symfony/http-kernel: ~3.4.38
- symfony/routing: ~3.4.38
- symfony/security: ~3.4.38
- symfony/security-bundle: ~3.4.38
Requires (Dev)
- doctrine/annotations: ^1.2
- friendsofphp/php-cs-fixer: ^1.12
- phpunit/phpunit: ~5.6
This package is not auto-updated.
Last update: 2024-09-24 21:56:47 UTC
README
MeuhMeuhConcept 的 FosUserBundle 实现
安装
在 composer.json 中添加仓库
{ "require": { "meuhmeuhconcept/fos-user-bundle": "~2.0"", }, }
通过 composer
composer require meuhmeuhconcept/fos-user-bundle
安装的 bundle 网页资源位于公开网页目录下
bin/console assets:install
配置
添加 bundle
在 app/AppKernel.php 中,添加以下行
public function registerBundles() { $bundles = [ // ... new MMC\FosUserBundle\MMCFosUserBundle(), new FOS\UserBundle\FOSUserBundle(), // ... ]; // ... }
创建自己的用户实体
<?php namespace AppBundle\Entity; use Doctrine\ORM\Mapping as ORM; use MMC\FosUserBundle\Entity\User as BaseUser; /** * @ORM\Entity */ class User extends BaseUser { public function __construct() { parent::__construct(); // your own logic } }
添加 fos 用户配置和 twig 布局
# app/config/config.yml fos_user: db_driver: orm # other valid values are 'mongodb', 'couchdb' and 'propel' firewall_name: main user_class: AppBundle\Entity\User twig: globals: mmc_fos_user_layout: "FOSUserBundle::layout.html.twig"
如果需要自定义布局,您应使用默认布局
# app/config/config.yml twig: globals: mmc_fos_user_layout: "FOSUserBundle:Default:layout.html.twig"
添加 fos 用户安全配置
# app/config/security.yml encoders: FOS\UserBundle\Model\UserInterface: bcrypt role_hierarchy: ROLE_ADMIN: ROLE_USER ROLE_SUPER_ADMIN: ROLE_ADMIN providers: mmc_fos_user: id: fos_user.user_provider.username_email firewalls: main: pattern: ^/ form_login: provider: mmc_fos_user csrf_token_generator: security.csrf.token_manager default_target_path: /admin logout: path: /logout target: /login anonymous: true remember_me: secret: '%secret%' lifetime: 604800 # 1 week in seconds path: / 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 }
添加 fos 用户路由
# app/config/routing.yml fos_user: resource: "@FOSUserBundle/Resources/config/routing/all.xml"
自定义
如果您需要更改注销路径(默认为 '/logout'),则应编辑 twig 全局 'mmc_fos_user_bundle_logout_path'。例如,如果需要 '/admin/logout' 作为注销路径
# app/config/config.yml twig: globals: mmc_fos_user_bundle_logout_path: '/admin/logout'
默认情况下,管理员标题前缀在登录页面中是 'MMC'。您可以使用 twig 全局来更改它
# app/config/config.yml twig: globals: admin_title_suffix: 'Foo' #'AdminMMC' => 'AdminFoo'
并在 security.yml 中更改路径
# app/config/security.yml /---- main: logout: path: /admin/logout target: /admin/login /----
与 MMC/SonataAdminBundle 一起使用
如果您使用 MMCSonataAdminBudnle bundle 并需要使用用户管理,您可以像这样启用它
# app/config/config.yml mmc_fos_user: admin: ~
默认情况下,管理员位于 sonata.admin.group.administration
下,您可以通过这种方式进行更改
# app/config/config.yml mmc_fos_user: admin: group: 'name.of.my.custom.group' icon: '<i class="fa fa-user"></i>' nav_top: ~
如果您在 sonata_admin.dashboard.groups
上覆盖了配置,则前面的配置将无效,因为它将被覆盖。
您应在项目列表中添加服务 ID mmc_fos_user_bundle.sonata_admin.user
# app/config/config.yml sonata_admin: dashboard: groups: sonata.admin.group.admin: items: - mmc_fos_user_bundle.sonata_admin.user
不要忘记授予管理员用户访问权限,角色为 ROLE_MMC_FOS_USER_BUNDLE_SONATA_ADMIN_USER_ALL
创建自定义块
如果您需要添加新的自定义块,则应