Escola无头LMS授权

维护者

详细信息

github.com/EscolaLMS/Auth

源代码

问题

安装次数: 35,231

依赖关系: 39

建议者: 4

安全: 0

星标: 2

关注者: 2

分支: 0

开放性问题: 0

类型:

0.2.39 2024-07-17 10:19 UTC

README

swagger codecov phpunit downloads downloads downloads Maintainability Mutation testing badge

作用是什么

用户认证包。此外,该包还包括

  • 用户管理,
  • 分组管理,
  • 个人资料管理,
  • 注册。

安装

  • composer require escolalms/auth
  • php artisan migrate
  • php artisan db:seed --class="EscolaLms\Auth\Database\Seeders\AuthPermissionSeeder"

可选

  • 运行命令 escolalms:admin

命令

  • escolalms:admin - 创建具有管理员角色的账户

数据库

  1. category_user - 表用于存储用户类别。
  2. groups - 用于存储分组的表。
  3. group_user - 存储分配给用户的分组的表。
User 1 -> n Categories
User 1 -> n Groups

端点

所有端点均定义在swagger

测试

运行./vendor/bin/phpunit以运行测试。 phpunit codecov

事件

  • AccountBlocked - 在阻止用户账户后(is_active=false)分发事件。
  • AccountConfirmed - 在用户验证账户后分发事件。
  • AccountDeleted - 删除用户后分发事件。
  • AccountMustBeEnableByAdmin - 当用户注册且Config::get('escola_auth.account_must_be_enabled_by_admin') === SettingStatusEnum::ENABLED时分发事件。
  • AccountRegistered - 账户注册后分发事件。
  • ForgotPassword - 在发送密码重置请求时分发事件。
  • Login - 登录成功时分发事件。
  • Logout - 登出后分发事件。
  • PasswordChanged - 修改密码后分发事件。
  • ResetPassword - 重置密码后分发事件。
  • UserAddedToGroup - 添加用户到组后分发事件。
  • UserRemovedFromGroup - 从组中删除用户后分发事件。

监听器

  • CreatePasswordResetToken - 监听器监听ForgotPassword事件并执行以下方法。
public function handle(ForgotPassword $event): void
{
    if (!is_callable(self::getRunEventForgotPassword()) || self::getRunEventForgotPassword()()) {
        $user = $event->getUser();

        $this->userRepository->update([
            'password_reset_token' => Str::random(32),
        ], $user->getKey());

        $user->refresh();

        $user->notify(new ResetPassword($user->password_reset_token, $event->getReturnUrl()));
    }
}

如果您正在使用TemplateEmail并且不想发送默认电子邮件,这将很有用。

 CreatePasswordResetToken::setRunEventForgotPassword(
    function () {
        $templateRepository = app(TemplateRepositoryContract::class);
        return empty($templateRepository->findTemplateDefault(
            ForgotPassword::class,
            EmailChannel::class
        ));
    }
 );
  • SendEmailVerificationNotification - 监听器监听AccountRegistered事件并执行以下方法。
public function handle(Registered $event)
{
    if (!is_callable(self::getRunEventEmailVerification()) || self::getRunEventEmailVerification()()) {
        if ($event->user instanceof MustVerifyEmail && !$event->user->hasVerifiedEmail()) {
            $event->user->sendEmailVerificationNotification();
        }
    }
}

如何在前端使用此工具

管理面板

用户列表 List of users

创建/编辑用户 创建/编辑用户

用户类别 用户类别

组列表 组列表

创建/编辑组 创建/编辑组

我的资料 我的资料

权限

权限在 种子文件 中定义。