appaydin/pd-user

Symfony Simple User Bundle

安装次数: 17,068

依赖项: 1

建议者: 0

安全性: 0

星标: 24

关注者: 3

分支: 5

开放问题: 8

类型:symfony-bundle

3.0.4 2021-06-03 21:35 UTC

README

Symfony 5+ 的简单用户管理系统。

Packagist Github Release license PHP from Packagist

安装

步骤 1: 下载包

打开命令行界面,进入项目目录,执行以下命令以下载此包的最新稳定版本

$ composer require appaydin/pd-user

此命令需要您全局安装 Composer,如 Composer 文档中的安装章节所述。

步骤 2: 启用包

在 Symfony 5 中,包将自动启用。但如果出现问题,您可以手动安装。

然后,通过将其添加到项目 config/bundles.php 文件中注册的包列表中来启用该包

<?php
// config/bundles.php

return [
    //...
    Pd\UserBundle\PdUserBundle::class => ['all' => true]
];

步骤 3: 创建用户、组、类

A) 创建用户类

为您的应用程序创建用户类。这个类可以看起来和表现成任何样子:添加任何您认为有用的属性或方法。这是您的用户类。

<?php
// src/Entity/User.php

namespace App\Entity;

use Doctrine\ORM\Mapping as ORM;
use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
use Pd\UserBundle\Model\User as BaseUser;

/**
 * @ORM\Table(name="user")
 * @ORM\Entity
 * @UniqueEntity(fields="email", message="email_already_taken")
 */
class User extends BaseUser
{
    public function __construct()
    {
        parent::__construct();
    }
}
B) 创建组类

为您的应用程序创建组类。这个类创建用户组。

<?php
// src/Entity/Group.php

namespace App\Entity;

use Doctrine\ORM\Mapping as ORM;
use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
use Pd\UserBundle\Model\Group as BaseGroup;

/**
 * @ORM\Table(name="user_group")
 * @ORM\Entity
 * @UniqueEntity(fields="name", message="group_already_taken")
 */
class Group extends BaseGroup
{

}

步骤 4: 设置包

为设置创建一个 "user.yaml" 文件。

# config/packages/user.yaml

pd_user:
    user_class: App\Entity\User
    group_class: App\Entity\Group
    default_group: ''
    login_redirect: 'web_home'
    email_confirmation: true
    welcome_email: true
    user_registration: true
    #template_path: '@Admin/Auth'
    resetting_request_time: 7200
    mail_sender_address: 'example@example.com'
    mail_sender_name: 'pdUser'
    active_language: ['en', 'tr']
    register_type: ''
    resetting_type: ''
  • user_class: 定义 'User' 类地址
  • group_class: 定义 'Group' 类地址
  • default_group: 新成员将加入的组 ID
  • login_redirect: 登录用户将被重定向的路由名称。
  • email_confirmation: 启用注册时的电子邮件验证。
  • welcome_email: 欢迎新成员的消息。
  • user_registration: 启用/禁用用户注册。
  • template_path: Twig 模板目录。可以通过复制源目录来更改。
  • resetting_request_time: 输入密码更新重试时间的秒数。
  • mail_sender_address: 邮件发送者地址
  • mail_sender_name: 邮件发送者名称
  • active_language: 活跃语言列表
  • register_type: 注册表单类型
  • resetting_type: 重置表单类型

####事件 UserEvent::REGISTER_BEFORE => 在注册表单之前启动。UserEvent::REGISTER => 记录完成后启动。UserEvent::REGISTER_CONFIRM => 注册确认时发送电子邮件。UserEvent::RESETTING => 发送重置邮件时启动密码。UserEvent::RESETTING_COMPLETE => 密码更改时启动。

步骤 5: 配置应用程序的 security.yml

以下是使用 pdUser 在您的应用程序中所需的最小配置示例

# config/packages/security.yaml

security:
    enable_authenticator_manager: true
    password_hashers:
        App\Entity\User:
            algorithm: auto
    role_hierarchy:
        ROLE_ADMIN: [ROLE_USER]
    providers:
        pdadmin_auth:
            entity:
                class: App\Entity\User
                property: email
    firewalls:
        # Enable for Development
        dev:
            pattern: ^/(_(profiler|wdt)|css|images|js)/
            security: false
        main:
            pattern:    ^/
            provider: pdadmin_auth
            lazy: true
            user_checker: Pd\UserBundle\Security\UserChecker
            switch_user: true
            http_basic: ~
            entry_point: form_login
            form_login:
                use_referer: true
                login_path: security_login
                check_path: security_login
                #default_target_path: 'dashboard' # Login Redirect Path
            logout:
                path: security_logout
                #target: 'home' # Logout Redirect Path
            remember_me:
                secret:   '%env(APP_SECRET)%'
                #lifetime: 604800
                path:     /
    access_control:
        - { path: ^/auth/login$, role: PUBLIC_ACCESS }
        - { path: ^/auth/register, role: PUBLIC_ACCESS }
        - { path: ^/auth/resetting, role: PUBLIC_ACCESS }
        #- { path: '^/', role: ROLE_ADMIN }

步骤 6: 导入 pdUser 路由

现在您已启用并配置了包,剩下的只是导入 pdUser 路由文件。

通过导入路由文件,您将拥有用于登录、注册、密码重置等内容的现成页面。

#config/routes.yaml

authorization:
    resource: "@PdUserBundle/Resources/config/routing.yaml"
    prefix: 'auth'

步骤 6: 更新数据库模式

所有步骤均已完成。您现在可以更新数据库模式。

php bin/console doctrine:schema:update --force