philiplb/crudlexuser

CRUDlexUser 是一个提供 symfony/security 用户提供器的库。

0.14.0 2018-09-07 14:01 UTC

This package is not auto-updated.

Last update: 2024-09-21 09:48:05 UTC


README

CRUDlexUser 是一个提供 symfony/security 用户提供器的库。

Total Downloads Latest Stable Version Latest Unstable Version License

API 文档

CRUDlexUser API 本身在此处有文档

即将推出的最新版本

通过 (假设 APIGen 已经全局安装,如 composer global require ...,且 PHP 版本最大为 7.1)

~/.composer/vendor/bin/apigen generate

CRUDlexUser 使用 SemVer 进行版本控制。由于版本小于 1.0.0,API 变化很快,因此在升级时请注意变更日志中的说明。

稳定版

"require": {
    "philiplb/crudlexuser": "0.14.0"
}

尖端版

"require": {
    "philiplb/crudlexuser": "0.15.x-dev"
}

使用方法

此库提供两部分。首先,一个管理界面,用于在您的管理员面板上对用户基础进行 CRUD 操作;其次,一个 symfony/security 用户提供器,以便将用户与应用程序连接起来。

管理员面板

您的用户管理员面板基于 CRUDlex。因此,您只需将以下子章节中所需的实体添加到您的 crud.yml 中。

为了获取生成的盐和哈希后的密码,您必须在初始化过程中让库添加一些 CRUDlex 事件。

$crudUserSetup = new CRUDlex\UserSetup();
$crudUserSetup->addEvents($app['crud']->getData('user'));

用户

user:
    label: User
    table: user
    fields:
        username:
            type: text
            label: Username
            required: true
            unique: true
        password:
            type: text
            label: Password Hash
            description: 'Set this to your desired password. Will be automatically converted to an hash value not meant to be readable.'
            required: true
        salt:
            type: text
            label: Password Salt
            description: 'Auto populated field on user creation. Used internally.'
            required: false
        userRoles:
            type: many
            label: Roles
            many:
                entity: role
                nameField: role
                thisField: user
                thatField: role

以及您需要的任何其他字段。推荐用于密码重置功能

email:
    type: text
    label: E-Mail
    required: true
    unique: true

角色

role:
    label: Roles
    table: role
    fields:
        role:
            type: text
            label: Role
            required: true

密码重置

如果您想使用密码重置功能

passwordReset:
    label: Password Resets
    table: password_reset
    fields:
        user:
            type: reference
            label: User
            reference:
                nameField: username
                entity: user
            required: true
        token:
            type: text
            label: Token
            required: true
        reset:
            type: datetime
            label: Reset

用户提供器

只需实例化并将其添加到您的 symfony/security 配置中

$userProvider = new CRUDlex\UserProvider($app['crud']->getData('user'), $app['crud']->getData('userRole'));
$app->register(new Silex\Provider\SecurityServiceProvider(), array(
    'security.firewalls' => array(
        'admin' => array(
            //...
            'users' => $userProvider
        ),
    ),
));

访问登录用户的数据

为了从您的控制器中获取登录用户的数据,您可能需要这样获取他

$user = $app['security.token_storage']->getToken()

您将获得一个 CRUDlex\User 实例,它具有一些获取器,请参阅 API 文档。

构建状态

Build Status Coverage Status

代码质量

SensioLabsInsight Scrutinizer Code Quality