Escola Headless LMS Authorization

Maintainers

πŸ‘ mwl91

Package info

github.com/EscolaLMS/Auth

Type:package

pkg:composer/escolalms/auth

Statistics

Installs: 179 326

Dependents: 39

Suggesters: 4

Stars: 2

Open Issues: 0

0.2.41 2026-05-26 08:32 UTC

Suggests

Provides

None

Conflicts

None

Replaces

None

MIT 5f83ca1514f361af4226e1c079b4438ef76b6cff

  • Marcin Lenkowski <marcin.lenkowski.woop@escola.pl>
  • Mateusz Wojczal <mateusz.wojczal.woop@escola.pl>
  • PaweΕ‚ ChoΕ‚aj <pawel.cholaj.woop@escola.pl>

This package is auto-updated.

Last update: 2026-06-26 08:36:21 UTC


README

πŸ‘ swagger
πŸ‘ codecov
πŸ‘ phpunit
πŸ‘ downloads
πŸ‘ downloads
πŸ‘ downloads
πŸ‘ Maintainability
πŸ‘ Mutation testing badge

What does it do

Package for user authentication. In addition, the package includes:

  • user management,
  • group management,
  • profile management,
  • registration.

Installing

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

Optional:

  • Run command escolalms:admin.

Commands

  • escolalms:admin - create account with role admin

Database

  1. category_user - Table is used to store the user categories.
  2. groups - Table for storing groups.
  3. group_user - Table for storing groups assigned to the user.
User 1 -> n Categories
User 1 -> n Groups

Endpoints

All the endpoints are defined in πŸ‘ swagger

Tests

Run ./vendor/bin/phpunit to run tests. πŸ‘ phpunit
πŸ‘ codecov

Events

  • AccountBlocked - Event is dispatched after blocking the user's account (is_active=false).
  • AccountConfirmed - Event is dispatched after the user verifies the account.
  • AccountDeleted - Event is dispatched after deleting the user.
  • AccountMustBeEnableByAdmin - Event is dispatched when the user registers and Config::get('escola_auth.account_must_be_enabled_by_admin') === SettingStatusEnum::ENABLED
  • AccountRegistered - Event is dispatched after the account is registered.
  • ForgotPassword - Event is dispatched when a password reset request is sent.
  • Login - Event is dispatched on successful login.
  • Logout - Event is dispatched after logout.
  • PasswordChanged - Event is dispatched after the password changed.
  • ResetPassword - Event is dispatched after resetting the password.
  • UserAddedToGroup - Event is dispatched after adding the user to the group.
  • UserRemovedFromGroup - Event is dispatched after removing the user from the group.

Listeners

  • CreatePasswordResetToken - The listener listens for the ForgotPassword event and executes the following method.
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()));
 }
}

This is useful if you are using TemplateEmail and you don't want to send the default e-mails.

 CreatePasswordResetToken::setRunEventForgotPassword(
 function () {
 $templateRepository = app(TemplateRepositoryContract::class);
 return empty($templateRepository->findTemplateDefault(
 ForgotPassword::class,
 EmailChannel::class
 ));
 }
 );
  • SendEmailVerificationNotification - The listener listens for the AccountRegistered event and executes the following method.
public function handle(Registered $event)
{
 if (!is_callable(self::getRunEventEmailVerification()) || self::getRunEventEmailVerification()()) {
 if ($event->user instanceof MustVerifyEmail && !$event->user->hasVerifiedEmail()) {
 $event->user->sendEmailVerificationNotification();
 }
 }
}

How to use this on frontend

Admin panel

List of users πŸ‘ List of users

Creating/editing user πŸ‘ User form

User categories πŸ‘ User categories

List of groups πŸ‘ List of groups

Creating/editing group πŸ‘ Creating/editing group

My profile πŸ‘ My profile

Permissions

Permissions are defined in seeder.