imatic/user-bundle

Imatic 用户包

安装次数: 1,377

依赖项: 0

建议者: 0

安全: 0

星标: 2

关注者: 7

分支: 1

开放问题: 1

类型:symfony-bundle


README

Build Status
License: MIT

ImaticUserBundle

角色

全局角色

配置
# app/config/security.yml

security:
    # ...

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

全局角色使用 "roles" 域进行翻译。

模型角色

配置
# app/config/config.yml

# Imatic user
imatic_user:
    # ...
    security:
        role:
            model:
                namespaces:
                    includes:
                        - App
                    excludes:
                        - AppExampleBundle\Entity\Example   # exclude single entity
                        - AppFooBundle\Entity               # exclude all entities

安装

1. 生成 AppUserBundle

生成并启用一个名为 AppUserBundle 的本地包。

此包将包含与用户相关的实体和固定数据。

2. 使用 composer 下载 ImaticUserBundle

"require": {
    # ...
    "imatic/user-bundle": "^3.0"
}

3. 启用包

<?php
// app/AppKernel.php

public function registerBundles()
{
    $bundles = array(
        // ...
        new FOS\UserBundle\FOSUserBundle(),
        new Imatic\Bundle\UserBundle\ImaticUserBundle(),
    );
}

4. 配置包

# app/config/config.yml

imports:
    # ...
    - { resource: "@ImaticUserBundle/Resources/config/config.yml" }
    - { resource: "@AppUserBundle/Resources/config/config.yml" }

doctrine:
    # ...
    orm:
        #...
        resolve_target_entities:
            # UserBundle
            Imatic\Bundle\UserBundle\Model\UserInterface: ApUserBundle\Entity\User
            Imatic\Bundle\UserBundle\Model\GroupInterface: AppUserBundle\Entity\Group

# Imatic user
imatic_user:
    entities:
        user: AppUserBundle\Entity\User
        group: AppUserBundle\Entity\Group
    security:
        role:
            model:
                namespaces:
                    includes: ~
                    excludes: ~
            hierarchy: ~

5. 配置安全设置

# app/config/security.yml

security:
    encoders:
        Symfony\Component\Security\Core\User\UserInterface: bcrypt

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

    providers:
        imatic_user_provider:
            id: imatic_user.user_provider.username

    firewalls:
        dev:
            pattern:  ^/(_(profiler|wdt)|css|images|js)/
            security: false

        main:
            pattern: ^/
            form_login:
                provider: imatic_user_provider
                csrf_token_generator: security.csrf.token_manager
            logout:       true
            anonymous:    true
            switch_user:  true

    access_control:
        - { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/, role: IS_AUTHENTICATED_FULLY }

6. 配置路由

# app/config/routing.yml

imatic_user:
    resource: "@ImaticUserBundle/Resources/config/routing.yml"