双峰/user-bundle

FOSUserBundle 扩展,用于与 Symfony2 一起使用,带有管理界面

安装: 132

依赖项: 0

建议者: 0

安全: 0

星星: 1

关注者: 4

分支: 1

开放问题: 0

类型:symfony-bundle

dev-master 2014-04-07 14:10 UTC

This package is not auto-updated.

Last update: 2024-09-23 14:13:10 UTC


README

FOSUserBundle 扩展,带有管理 GUI

##安装

在您的 composer.json 中添加 TPUserBundle,TPUserBundle 还需要 FOSUserBundle

{
    "require": {
        "friendsofsymfony/user-bundle": "~2.0@dev",
        "twinpeaks/user-bundle": "dev-master"
    }
}

在内核中启用捆绑

// app/AppKernel.php

public function registerBundles()
{
    $bundles = array(
        // ...
        new FOS\UserBundle\FOSUserBundle(),
        new Knp\Bundle\PaginatorBundle\KnpPaginatorBundle(),
        new Twinpeaks\UserBundle\TPUserBundle(),
    );
}

配置您的应用的安全.yml

# app/config/security.yml
security:
    encoders:
        FOS\UserBundle\Model\UserInterface: sha512

    role_hierarchy:
        ROLE_USER:        ROLE_USER
        ROLE_ADMIN:       [ROLE_USER]
        ROLE_SUPER_ADMIN: [ROLE_USER, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH]

    providers:
        fos_userbundle:
            id: fos_user.user_provider.username
        in_memory:
            memory:
                users:
                    user:  { password: user, roles: [ 'ROLE_USER' ] }
                    admin: { password: admin, roles: [ 'ROLE_ADMIN' ] }

    firewalls:
        main:
            pattern: ^/
            form_login:
                #login_path: /
                provider: fos_userbundle
                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 }

配置 FOSUserBundle

# app/config/config.yml

# FOSUser Configuration
fos_user:
    db_driver: orm
    firewall_name: main
    user_class: Twinpeaks\UserBundle\Entity\User
    group:
        group_class: Twinpeaks\UserBundle\Entity\UserGroup

将 TPUserBundle 添加到 assetic

# app/config/config.yml
    bundles:        [ "TPUserBundle" ]

导入路由文件

# app/config/routing.yml
twinpeaks_user:
    resource: "@TPUserBundle/Resources/config/routing.xml"
    prefix:   /admin    

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

更新数据库模式

#console
php app/console doctrine:schema:update --force

创建用户

#console
php app/console fos:user:create

提升用户为 SuperAdmin 创建用户

#console
php app/console fos:user:promote username ROLE_SUPER_ADMIN