ardteam / user-project

用户包

安装: 21

依赖项: 1

建议者: 0

安全: 0

星标: 0

关注者: 2

分支: 0

开放问题: 0

类型:symfony-bundle

dev-master / 1.0.x-dev 2015-10-30 13:06 UTC

This package is not auto-updated.

Last update: 2024-09-28 18:05:21 UTC


README

安装

在composer.json文件中引入该包

// composer.json
{
    // ...
    require:{
        // ...
        "ardteam/user-project" : "1.0.x@dev",
        "friendsofsymfony/user-bundle": "@dev"
    }
}

注册该包

// app/AppKernel.php

public function registerBundles()
{
    return array(
        // ...
        new FOS\UserBundle\FOSUserBundle(),
        new AT\UserBundle\ATUserBundle(),
        // ...
    );
}

安装该包

$ composer update

配置

# Add to app/config/config.yml
doctrine:
    dbal:
        # ...
        types:
            json: Sonata\Doctrine\Types\JsonType

fos_user:
    db_driver: orm
    firewall_name: main
    user_class: AT\UserBundle\Entity\User
# Add to app/config/security.yml

security
    encoders:
        AT\UserBundle\Entity\User: sha512

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

    providers:
        fos_userbundle:
            id: fos_user.user_provider.username

    firewalls:
        # ...

        main:
           pattern: ^/
           anonymous:    true
           form_login:
               provider: fos_userbundle
               login_path: fos_user_security_login
               check_path: fos_user_security_check
           logout:
                path: fos_user_security_logout
                target: /admin/ # route après logout
            remember_me:
                key: %secret% # %secret% est un paramètre de parameters.yml

    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 } # exemple de route à sécuriser
        # ...

导入FOSUser路由

# Add to app/config/routing.yml

# Sécurité & Connexion
fos_user:
    resource: "@FOSUserBundle/Resources/config/routing/all.xml"

使用

创建一个用户。例如

$ php app/console fos:user:create <user_name> <user_email> <user_password> --super-admin