Upgrade Guide

Vanguard - Advanced PHP Login and User Management Vanguard - Advanced PHP Login and User Management / Setup Last updated on Updated  Apr 22, 2025

This section contains some info about what's changed in the latest version and how you should update your Vanguard application. You can find the version you are currently using inside config/app.php file. The complete changelog is available in the item description on CodeCanyon.

NOTE: While doing the upgrade, it's always a good idea to have the Development Mode​ turned on so you can easily see the errors on the screen.

To 9.1.0 from 9.0.0

Two new features added!

We've added support for "Pending" users, meaning that, if the feature is enabled, users will have to be approved by an admin to be able to log in to Vanguard. After a user is approved by the admin, they'll get an email notification that their account is approved and that he is able to log in.

Another new feature is the ability to force a password reset on the next login. When this feature is enabled, all users created by the admin will be requested to reset their password on their next login. Admins can also request a password reset for any user who's currently in the system.

The list of changed files is available below:

 app/Events/User/Approved.php                                                |   17 +
 app/Http/Controllers/Api/Auth/AuthController.php | 4 +
 app/Http/Controllers/Api/Auth/RegistrationController.php | 2 +-
 app/Http/Controllers/Api/Auth/SocialLoginController.php | 4 +
 app/Http/Controllers/Api/Users/UsersController.php | 2 +-
 app/Http/Controllers/Web/Auth/LoginController.php | 16 +-
 app/Http/Controllers/Web/Auth/RegisterController.php | 9 +-
 app/Http/Controllers/Web/Auth/SocialAuthController.php | 20 +-
 app/Http/Controllers/Web/Profile/LoginDetailsController.php | 7 +-
 app/Http/Controllers/Web/SettingsController.php | 29 ++
 app/Http/Controllers/Web/Users/DetailsController.php | 27 ++
 app/Http/Controllers/Web/Users/LoginDetailsController.php | 1 +
 app/Http/Controllers/Web/Users/UsersController.php | 2 +
 app/Http/Kernel.php | 2 +
 app/Http/Middleware/EnsureUserIsApproved.php | 27 ++
 app/Http/Middleware/ForcePasswordChange.php | 34 ++
 app/Http/Requests/Auth/RegisterRequest.php | 11 +-
 app/Listeners/Approve/SendApprovedNotification.php | 22 ++
 app/Listeners/Approve/SendWaitingApprovalNotification.php | 26 ++
 app/Listeners/Users/ActivateUser.php | 2 +-
 app/Mail/UserApproved.php | 24 ++
 app/Mail/WaitingApproval.php | 25 ++
 app/Providers/EventServiceProvider.php | 7 +
 app/Providers/VanguardServiceProvider.php | 2 +
 app/Services/Auth/Social/SocialManager.php | 2 +-
 app/Support/Authorization/PasswordChangeManager.php | 44 +++
 app/Support/Enum/UserStatus.php | 9 +-
 app/Support/Plugins/Dashboard/Widgets/UsersAwaitingApproval.php | 42 ++
 app/User.php | 7 +-
 composer.json | 2 +-
 composer.lock | 2440 +-
 database/migrations/2024_07_24_113901_add_force_password_change_column.php | 29 ++
 public/assets/css/app.css | 2 +-
 public/assets/js/delete.handler.js | 2 +-
 public/assets/js/vendor.js | 2 +-
 public/mix-manifest.json | 6 +-
 resources/lang/de.json | 20 +-
 resources/lang/de/app.php | 1 +
 resources/lang/de/auth.php | 1 +
 resources/lang/en/app.php | 1 +
 resources/lang/en/auth.php | 1 +
 resources/lang/sr.json | 20 +-
 resources/lang/sr/app.php | 1 +
 resources/lang/sr/auth.php | 1 +
 resources/views/auth/approval.blade.php | 17 +
 resources/views/auth/social/buttons.blade.php | 8 +-
 resources/views/mail/user-approved.blade.php | 12 +
 resources/views/mail/waiting-approval.blade.php | 18 +
 resources/views/plugins/dashboard/widgets/users-awaiting-approval.blade.php | 8 +
 resources/views/settings/auth.blade.php | 4 +-
 resources/views/settings/partials/confirm-flow.blade.php | 31 ++
 resources/views/settings/partials/password-change.blade.php | 31 ++
 resources/views/user/add.blade.php | 2 +-
 resources/views/user/edit.blade.php | 19 +-
 resources/views/user/list.blade.php | 2 +-
 resources/views/user/partials/auth.blade.php | 20 +-
 resources/views/user/partials/details.blade.php | 2 +-
 resources/views/user/partials/row.blade.php | 22 +-
 resources/views/user/profile.blade.php | 17 +-
 routes/api.php | 2 +-
 routes/web.php | 24 +-
 storage/settings.json | 2 +-
 tests/Feature/Web/LoginTest.php | 36 ++
 tests/Feature/Web/RegistrationTest.php | 45 +++
 tests/Feature/Web/Settings/ApprovalSettingsTest.php | 49 +++
 65 files changed, 2016 insertions(+), 1310 deletions(-)

To 9.0.0 from 8.1.1

Laravel 11 and Two Factor update.

We've updated Vanguard to the most recent version of Laravel in this version. That means that the Laravel version in the composer.json file has been updated along with versions for some third-party packages, so the first thing to do is to make sure that you update that one as well.

A second big change is that we've removed the laravelcollective/html package which means that the majority of blade files have been updated since it changed the way how we rendered the forms, form inputs, style, and script tags. 

The third important update is that we've replaced Authy two-factor authentication with a QR code one, so Authy-related classes and methods are no longer part of the project. If you are already using Authy for 2FA, there is no need to change anything or remove those files. If you are not using it, feel free to remove the files and add the newly added files for the new 2FA implementation.

The logo file has been renamed and we've introduced a new logo blade component. The purpose of this is to make logo customization much easier and to keep everything in one place.

The list of changed files is available below:

 app/Http/Controllers/Api/Profile/TwoFactorController.php                         |   57 +--
 app/Http/Controllers/Api/Users/TwoFactorController.php | 41 +-
 app/Http/Controllers/Web/Auth/LoginController.php | 7 +-
 app/Http/Controllers/Web/Auth/SocialAuthController.php | 3 +-
 app/Http/Controllers/Web/Auth/TwoFactorTokenController.php | 13 +-
 app/Http/Controllers/Web/InstallController.php | 2 +-
 app/Http/Controllers/Web/Profile/AvatarController.php | 2 +-
 app/Http/Controllers/Web/Profile/ProfileController.php | 2 +-
 app/Http/Controllers/Web/TwoFactorController.php | 70 +--
 app/Http/Kernel.php | 2 +-
 app/Http/Middleware/{VerifyTwoFactorPhone.php => VerifyTwoFactorCode.php} | 4 +-
 app/Http/Requests/TwoFactor/EnableTwoFactorRequest.php | 5 +-
 app/Http/Requests/TwoFactor/TwoFactorLoginRequest.php | 61 +++
 app/Http/Requests/TwoFactor/VerifyTwoFactorTokenRequest.php | 2 +-
 app/Providers/FortifyServiceProvider.php | 24 +
 app/Providers/HtmlServiceProvider.php | 34 --
 app/Repositories/Role/EloquentRole.php | 2 +-
 app/Repositories/Role/RoleRepository.php | 2 +-
 app/Services/Auth/TwoFactor/Authy.php | 95 ----
 app/Services/Auth/TwoFactor/AuthyServiceProvider.php | 21 -
 app/User.php | 15 +-
 app/View/Components/Logo.php | 40 ++
 composer.json | 24 +-
 config/app.php | 14 +-
 config/cache.php | 3 +
 config/database.php | 25 +-
 config/filesystems.php | 5 +
 config/fortify.php | 159 ++++++
 config/mail.php | 17 +-
 config/queue.php | 17 +
 config/services.php | 11 +
 config/session.php | 14 +-
 database/migrations/2024_07_10_131649_add_two_factor_columns_to_users_table.php | 46 ++
 public/assets/img/{vanguard-logo-no-text.png => logo-no-text.png} | Bin
 public/assets/img/{vanguard-logo.png => logo.png} | Bin
 resources/lang/de.json | 10 +-
 resources/lang/sr.json | 12 +-
 resources/views/auth/login.blade.php | 4 +-
 resources/views/auth/passwords/email.blade.php | 2 +-
 resources/views/auth/passwords/reset.blade.php | 2 +-
 resources/views/auth/register.blade.php | 2 +-
 resources/views/auth/token.blade.php | 8 +-
 resources/views/components/logo.blade.php | 4 +
 resources/views/install/database.blade.php | 7 +-
 resources/views/install/installation.blade.php | 7 +-
 resources/views/layouts/auth.blade.php | 10 +-
 resources/views/layouts/install.blade.php | 8 +-
 resources/views/partials/navbar.blade.php | 4 +-
 resources/views/permission/add-edit.blade.php | 8 +-
 resources/views/permission/index.blade.php | 25 +-
 resources/views/plugins/dashboard/widgets/registration-history-scripts.blade.php | 5 +-
 resources/views/role/add-edit.blade.php | 7 +-
 resources/views/settings/general.blade.php | 5 +-
 resources/views/settings/notifications.blade.php | 5 +-
 resources/views/settings/partials/auth.blade.php | 12 +-
 resources/views/settings/partials/recaptcha.blade.php | 22 +-
 resources/views/settings/partials/registration.blade.php | 22 +-
 resources/views/settings/partials/throttling.blade.php | 13 +-
 resources/views/settings/partials/two-factor.blade.php | 23 +-
 resources/views/user/add.blade.php | 9 +-
 resources/views/user/edit.blade.php | 24 +-
 resources/views/user/list.blade.php | 15 +-
 resources/views/user/partials/details.blade.php | 30 +-
 resources/views/user/partials/two-factor.blade.php | 101 ++--
 resources/views/user/profile.blade.php | 27 +-
 resources/views/user/two-factor-verification.blade.php | 11 +-
 resources/views/vendor/mail/html/message.blade.php | 2 +-
 resources/views/vendor/notifications/email.blade.php | 2 +-
 routes/web.php | 22 +-
 storage/settings.json | 2 +-
 tests/Feature/Api/Profile/TwoFactorControllerTest.php | 94 ++--
 tests/Feature/Api/Users/TwoFactorControllerTest.php | 85 ++--
 tests/Feature/Web/LoginTest.php | 48 +-
 tests/Feature/Web/TwoFactorAuthTest.php | 333 +++----------
 tests/Setup/UserFactory.php | 8 -
 tests/Unit/Repositories/Role/EloquentRoleTest.php | 2 +-

To 8.1.1 from 8.1.0

This version contains just a fix in the installation wizard. If you are already using Vanguard, there is no need to update any of the files. 

If you are installing it from scratch, just download the latest version from CodeCanyon and you should be good to go.

The list of changed files is available below:

app/Http/Middleware/VerifyInstallation.php
app/Http/Controllers/Web/InstallController.php
config/app.php // just a version update

To 8.1.0 from 8.0.0

This upgrade brings a couple of new features and fixes some small bugs. 

This version also comes with Larvel Pint so there are a lot of changed files, however, the majority of the changes are caused by Pint or by some cleanup that we performed manually, so you don't have to update them if you don't want to.

Below is the list of new files that you should copy to the appropriate directories:

app/Http/Middleware/SetLocale.php
app/Support/Locale.php
public/flags/RS.png
resources/views/partials/locale-dropdown.blade.php

Below is the list of updated files that you should check since they either contain some new code or are affected by the refactoring. Please check files one by one instead of just overwriting them since this upgrade brings some things like function return types and so on, so if you overwrite the file things might stop working.

app/Http/Controllers/Api/Auth/AuthController.php
app/Http/Controllers/Api/Auth/RegistrationController.php
app/Http/Controllers/Api/Authorization/RolesController.php
app/Http/Controllers/Api/Profile/TwoFactorController.php
app/Http/Controllers/Api/Users/TwoFactorController.php
app/Http/Controllers/Web/Auth/ForgotPasswordController.php
app/Http/Controllers/Web/Auth/LoginController.php
app/Http/Controllers/Web/Auth/RegisterController.php
app/Http/Controllers/Web/Auth/TwoFactorTokenController.php
app/Http/Controllers/Web/Authorization/RolesController.php
app/Http/Controllers/Web/TwoFactorController.php
app/Http/Controllers/Web/Users/DetailsController.php
app/Http/Kernel.php
app/Http/Resources/UserResource.php
app/Listeners/Registration/SendSignUpNotification.php
app/Providers/HtmlServiceProvider.php
app/Repositories/Session/DbSession.php
app/Repositories/User/UserRepository.php
app/Repositories/User/EloquentUser.php
app/Role.php
app/Rules/ValidPermissionName.php
app/Services/Auth/Social/SocialManager.php
app/Support/Enum/UserStatus.php
app/User.php
config/app.php
resources/lang/en/auth.php
resources/lang/en/passwords.php
resources/views/layouts/auth.blade.php
resources/views/partials/navbar.blade.php
resources/views/settings/partials/auth.blade.php
resources/views/user/partials/details.blade.php
resources/views/user/partials/row.blade.php

To 8.0.0 from 7.0.0

Laravel 10 upgrade.

There is a new migration file added for Laravel sanctum named 2023_03_16_151533_add_expires_at_to_personal_access_tokens_table.php, so make sure that you add that migration file to your project and run the `php artisan migrate` command.

If you've changed the applications public directory as it's explained here, make sure that you replace 

$app->instance('path.public', __DIR__);

with

$app->usePublicPath(__DIR__);

The list of modified and removed files is available below. It's highly recommended to check each file and update it if necessary. Some files just contain cosmetic changes, so you don't have to update those files if you don't want to.

 .editorconfig                                                                            |    11 +-
 .gitattributes | 15 +-
 .gitignore | 6 +
 .styleci.yml | 9 +
 app/Http/Controllers/Web/InstallController.php | 35 +-
 app/Support/Plugins/Settings.php | 7 +-
 app/User.php | 5 +-
 composer.json | 27 +-
 composer.lock | 3515 ++++++-------
 config/app.php | 66 +-
 config/broadcasting.php | 17 +-
 config/cache.php | 12 +-
 config/database.php | 16 +-
 config/filesystems.php | 15 +
 config/hashing.php | 6 +-
 config/logging.php | 59 +-
 config/mail.php | 15 +-
 config/queue.php | 9 +-
 config/sanctum.php | 27 +-
 config/session.php | 7 +-
 database/migrations/2023_03_16_151533_add_expires_at_to_personal_access_tokens_table.php | 29 +
 package-lock.json | 9557 ++++++++++++++++++++++++++++++++++-
 package.json | 9 +-
 phpunit.xml | 2 +-
 public/assets/css/app.css | 11 +-
 public/assets/css/vendor.css | 2 +-
 public/assets/js/vendor.js | 2 +-
 public/mix-manifest.json | 2 +-
 storage/settings.json | 2 +-
 tests/Feature/Api/Profile/TwoFactorControllerTest.php | 13 +-
 tests/Feature/Api/Users/AvatarControllerTest.php | 13 +-
 tests/Feature/Api/Users/TwoFactorControllerTest.php | 12 +-
 tests/Feature/Api/Users/UsersControllerTest.php | 13 +-
 tests/Feature/Web/LoginTest.php | 7 +-
 tests/Feature/Web/PermissionsTest.php | 36 +-
 tests/Feature/Web/TwoFactorAuthTest.php | 25 +-
 tests/Feature/Web/UpdateProfileTest.php | 26 +-
 tests/Feature/Web/UsersTest.php | 7 +-
 tests/Unit/Presenters/UserPresenterTest.php | 3 +-
 tests/Unit/Repositories/Permission/EloquentPermissionTest.php | 24 +-
 tests/Unit/Repositories/Role/EloquentRoleTest.php | 19 +-


To 7.0.0 from 6.1.0

Added support for PHP 8.1 and upgraded to Laravel 9.

The list of modified and removed files is available below. It's highly recommended to check each file and update it if necessary. Some files just contain cosmetic changes, so you don't have to update those files if you don't want to.

 .env.example                                                         |    2 +-
 app/Console/Kernel.php | 12 +-
 app/Exceptions/Handler.php | 24 +-
 app/Http/Controllers/Api/Auth/RegistrationController.php | 19 +-
 app/Http/Controllers/Api/Auth/SocialLoginController.php | 18 +-
 app/Http/Controllers/Api/Authorization/PermissionsController.php | 8 +-
 app/Http/Controllers/Api/Authorization/RolePermissionsController.php | 8 +-
 app/Http/Controllers/Api/Authorization/RolesController.php | 8 +-
 app/Http/Controllers/Api/Profile/AvatarController.php | 14 +-
 app/Http/Controllers/Api/SessionsController.php | 8 +-
 app/Http/Controllers/Api/StatsController.php | 9 +-
 app/Http/Controllers/Api/Users/AvatarController.php | 15 +-
 app/Http/Controllers/Api/Users/UsersController.php | 9 +-
 app/Http/Controllers/Web/Auth/LoginController.php | 13 +-
 app/Http/Controllers/Web/Auth/RegisterController.php | 13 +-
 app/Http/Controllers/Web/Auth/SocialAuthController.php | 15 +-
 app/Http/Controllers/Web/Auth/TwoFactorTokenController.php | 12 +-
 app/Http/Controllers/Web/Authorization/PermissionsController.php | 18 +-
 app/Http/Controllers/Web/Authorization/RolePermissionsController.php | 12 +-
 app/Http/Controllers/Web/Authorization/RolesController.php | 12 +-
 app/Http/Controllers/Web/InstallController.php | 2 +-
 app/Http/Controllers/Web/Profile/AvatarController.php | 12 +-
 app/Http/Controllers/Web/Profile/DetailsController.php | 12 +-
 app/Http/Controllers/Web/Profile/LoginDetailsController.php | 12 +-
 app/Http/Controllers/Web/Profile/ProfileController.php | 27 +-
 app/Http/Controllers/Web/Profile/SessionsController.php | 11 +-
 app/Http/Controllers/Web/Users/AvatarController.php | 14 +-
 app/Http/Controllers/Web/Users/DetailsController.php | 12 +-
 app/Http/Controllers/Web/Users/LoginDetailsController.php | 12 +-
 app/Http/Controllers/Web/Users/SessionsController.php | 13 +-
 app/Http/Controllers/Web/Users/UsersController.php | 12 +-
 app/Http/Kernel.php | 14 +-
 app/Http/Middleware/Authenticate.php | 16 +-
 app/Http/Middleware/CheckPermissions.php | 9 +-
 app/Http/Middleware/CheckRole.php | 9 +-
 app/Http/Middleware/EncryptCookies.php | 6 +-
 app/Http/Middleware/PreventRequestsDuringMaintenance.php | 17 +
 app/Http/Middleware/RedirectIfAuthenticated.php | 41 +-
 app/Http/Middleware/TrimStrings.php | 3 +-
 app/Http/Middleware/TrustHosts.php | 20 +
 app/Http/Middleware/TrustProxies.php | 15 +-
 app/Http/Middleware/UseApiGuard.php | 15 +-
 app/Http/Middleware/VerifyCsrfToken.php | 2 +-
 app/Http/Middleware/VerifyInstallation.php | 4 +
 app/Listeners/Login/UpdateLastLoginTimestamp.php | 13 +-
 app/Listeners/Registration/SendSignUpNotification.php | 8 +-
 app/Listeners/Users/ActivateUser.php | 8 +-
 app/Listeners/Users/InvalidateSessions.php | 8 +-
 app/Mail/UserRegistered.php | 13 +-
 app/Presenters/Presenter.php | 11 +-
 app/Providers/EventServiceProvider.php | 21 +-
 app/Providers/RouteServiceProvider.php | 15 +-
 app/Services/Auth/Social/SocialManager.php | 20 +-
 app/Support/Sidebar/Item.php | 2 +-
 composer.json | 36 +-
 config/app.php | 2 +-
 tests/Feature/Web/SocialAuthenticationTest.php | 3 +-


To 6.1.0 from 6.0.0

Added support for PHP 8 and fixed a few minor issues.

The list of modified and removed files is available below:

 app/Http/Controllers/Web/Auth/SocialAuthController.php |     2 +
 app/Http/Controllers/Web/Users/SessionsController.php | 2 +-
 app/Http/Middleware/RedirectIfAuthenticated.php | 4 +-
 app/Providers/AppServiceProvider.php | 2 +
 composer.json | 26 +-
 config/app.php | 2 +-
 package.json | 39 +-
 public/assets/css/app.css | 2 +-
 public/assets/js/vendor.js | 2 +-
 public/mix-manifest.json | 4 +-
 resources/js/app.js | 21 -
 resources/js/bootstrap.js | 34 +-
 resources/js/components/Example.vue | 23 -
 resources/lang/de.json | 2 +-
 resources/lang/sr.json | 2 +-
 resources/sass/components/switch.scss | 4 +-

To 6.0.0 from 5.0.1

Upgraded to Laravel 8 and fixed a few minor issues.

The list of modified and removed files is available below (test files are omitted for readability):

 app/Country.php                                                   |    3 +
 app/Http/Controllers/Api/Auth/RegistrationController.php | 2 +-
 app/Http/Controllers/Web/Users/AvatarController.php | 2 +-
 app/Permission.php | 3 +
 app/Providers/AppServiceProvider.php | 5 +
 app/Role.php | 14 +-
 app/Services/Auth/Social/SocialManager.php | 3 +-
 app/Support/DataArraySerializer.php | 100 ----
 app/User.php | 4 +-
 composer.json | 50 +-
 config/app.php | 3 +-
 database/factories/CountryFactory.php | 40 +-
 database/factories/PermissionFactory.php | 36 +-
 database/factories/RoleFactory.php | 36 +-
 database/factories/TokenFactory.php | 16 -
 database/factories/UserFactory.php | 63 ++-
 database/migrations/2015_10_10_170827_create_users_table.php | 2 +-
 database/{seeds => seeders}/.gitkeep | 0
 database/{seeds => seeders}/CountriesSeeder.php | 6 +-
 database/{seeds => seeders}/DatabaseSeeder.php | 10 +-
 database/{seeds => seeders}/PermissionsSeeder.php | 2 +
 database/{seeds => seeders}/RolesSeeder.php | 2 +
 database/{seeds => seeders}/UserSeeder.php | 2 +
 phpunit.xml | 66 ++-
 resources/views/user/edit.blade.php | 1 -
 routes/api.php | 11 +-
 routes/web.php | 12 +-

To 5.0.1 from 4.0.1

Bugfix release to fix the installation wizard. The only file that has been updated is 

app/Http/Controllers/Web/InstallController.php

To 5.0.0 from 4.0.1

Upgraded to Laravel 7 and fixed a few reported issues. API responses and authentication are completely changed in this version and Vanguard is now using Laravel's first-party packages for this.

The list of modified and removed files is available below (test files are omitted for readability):

 app/Exceptions/Handler.php                                                      |    22 +-
 app/Http/Controllers/Api/ApiController.php | 122 +-
 app/Http/Controllers/Api/Auth/AuthController.php | 60 +-
 app/Http/Controllers/Api/Auth/Password/RemindController.php | 12 +-
 app/Http/Controllers/Api/Auth/Password/ResetController.php | 10 +-
 app/Http/Controllers/Api/Auth/RegistrationController.php | 4 +-
 app/Http/Controllers/Api/Auth/SocialLoginController.php | 6 +-
 app/Http/Controllers/Api/Auth/VerificationController.php | 104 +
 app/Http/Controllers/Api/Authorization/PermissionsController.php | 35 +-
 app/Http/Controllers/Api/Authorization/RolePermissionsController.php | 23 +-
 app/Http/Controllers/Api/Authorization/RolesController.php | 40 +-
 app/Http/Controllers/Api/CountriesController.php | 11 +-
 app/Http/Controllers/Api/Profile/AuthDetailsController.php | 15 +-
 app/Http/Controllers/Api/Profile/AvatarController.php | 23 +-
 app/Http/Controllers/Api/Profile/DetailsController.php | 19 +-
 app/Http/Controllers/Api/Profile/SessionsController.php | 10 +-
 app/Http/Controllers/Api/Profile/TwoFactorController.php | 16 +-
 app/Http/Controllers/Api/SessionsController.php | 10 +-
 app/Http/Controllers/Api/SettingsController.php | 2 -
 app/Http/Controllers/Api/StatsController.php | 13 +-
 app/Http/Controllers/Api/Users/ActivityController.php | 49 -
 app/Http/Controllers/Api/Users/AvatarController.php | 16 +-
 app/Http/Controllers/Api/Users/SessionsController.php | 11 +-
 app/Http/Controllers/Api/Users/TwoFactorController.php | 13 +-
 app/Http/Controllers/Api/Users/UsersController.php | 59 +-
 app/Http/Controllers/Web/Auth/LoginController.php | 4 +-
 app/Http/Controllers/Web/InstallController.php | 21 +-
 app/Http/Filters/UserKeywordSearch.php | 19 +
 app/Http/Kernel.php | 9 +-
 app/Http/Middleware/Authenticate.php | 8 +-
 app/Http/Middleware/CheckIfBanned.php | 24 +
 app/Http/Middleware/UseApiGuard.php | 3 +-
 app/Http/Requests/Auth/ApiLoginRequest.php | 33 +
 app/Http/Requests/Auth/ApiVerifyEmailRequest.php | 21 +
 app/Http/Requests/Auth/Social/ApiAuthenticateRequest.php | 1 +
 app/Http/Requests/BinaryFileUploadRequest.php | 76 -
 app/Http/Requests/User/UploadAvatarRawRequest.php | 11 +-
 app/Http/Resources/CountryResource.php | 37 +
 app/Http/Resources/PermissionResource.php | 27 +
 app/Http/Resources/RoleResource.php | 38 +
 app/Http/Resources/SessionResource.php | 28 +
 app/Http/Resources/UserResource.php | 54 +
 app/Listeners/Users/{InvalidateSessionsAndTokens.php => InvalidateSessions.php} | 9 +-
 app/Providers/EventServiceProvider.php | 4 +-
 app/Repositories/User/EloquentUser.php | 8 +-
 app/Services/Auth/Api/ExtendsJwtValidation.php | 69 -
 app/Services/Auth/Api/JWT.php | 8 -
 app/Services/Auth/Api/JWTAuth.php | 8 -
 app/Services/Auth/Api/JWTServiceProvider.php | 39 -
 app/Services/Auth/Api/Token.php | 12 -
 app/Services/Auth/Api/TokenFactory.php | 82 -
 app/Transformers/CountryTransformer.php | 32 -
 app/Transformers/PermissionTransformer.php | 22 -
 app/Transformers/RoleTransformer.php | 33 -
 app/Transformers/SessionTransformer.php | 24 -
 app/Transformers/UserTransformer.php | 54 -
 app/User.php | 30 +-
 composer.json | 33 +-
 composer.lock | 3055 ++++++++++++++----------
 config/app.php | 7 +-
 config/auth.php | 22 +-
 config/cache.php | 1 +
 config/cors.php | 34 +
 config/database.php | 7 +
 config/jwt.php | 262 ---
 config/logging.php | 12 +-
 config/mail.php | 139 +-
 config/queue.php | 1 +
 config/sanctum.php | 46 +
 config/services.php | 1 +
 config/session.php | 2 +-
 config/view.php | 5 +-
 database/migrations/2015_10_10_171049_create_social_login_table.php | 2 +-
 database/migrations/2015_12_29_224252_create_user_activity_table.php | 2 +-
 database/migrations/2017_04_13_200254_create_api_tokens_table.php | 51 -
 database/migrations/2019_12_14_000001_create_personal_access_tokens_table.php | 36 +
 package.json | 17 +-
 public/assets/css/app.css | 8 +-
 public/assets/css/vendor.css | 2 +-
 public/assets/js/vendor.js | 12 +-
 public/mix-manifest.json | 6 +-
 readme.md | 2 +-
 resources/views/auth/login.blade.php | 2 +-
 resources/views/user/profile.blade.php | 1 -
 routes/api.php | 89 +-


To 4.0.1 from 4.0.0

Fixed a few small bugs and slightly updated the registration flow. From this release on the `/Documentation/Patches` folder will be removed from the ZIP archive since Git patches are being detected as a virus by some anti-virus applications.

The list of modified files is available below

 app/Http/Controllers/Web/Auth/RegisterController.php           |  6 ++++--
 app/Http/Controllers/Web/DashboardController.php | 6 +++++-
 app/Listeners/Users/ActivateUser.php | 33 +++++++++++++++++++++++++++++++++
 app/Providers/EventServiceProvider.php | 5 +++++
 app/User.php | 2 +-
 config/app.php | 2 +-
 config/filesystems.php | 2 +-
 resources/lang/de.json | 5 +++--
 resources/lang/sr.json | 3 ++-
 resources/views/dashboard/{admin.blade.php => index.blade.php} | 1 +
 tests/Feature/Web/RegistrationTest.php | 4 ++--
 11 files changed, 58 insertions(+), 11 deletions(-)


To 4.0.0 from 3.2.1

Version 4 of Vanguard, which runs on Laravel 6, comes with a lot of improvements and, if you have any projects created using the previous versions of Vanguard, it's recommended to move all your modifications to a clean Vanguard 4 installation than to upgrade your existing Vanguard version.

The reason for this is because there are a lot of changed files between Vanguard 3.2.1 and Vanguard 4, and it can take pretty long to update all the files to their latest versions.

Anyways, if you decide to upgrade the Vanguard manually since there are a lot of the changes files, you will need to go through each file from the list of modified files available below and compare it with the one from version 4. It's highly recommended to check the Git patch file that contains all the differences between those two versions. The patch file is located inside the Documentation/Patches directory and you can use any text editor to open it (something like this Chrome plugin will also be a good option).

Modified files:

 .gitignore                                                                                                 |    1 +
 app/Events/User/Registered.php                                                                             |   30 -
 app/Events/User/ResetedPasswordViaEmail.php                                                                |   26 -
 app/Exceptions/Handler.php                                                                                 |    8 -
 app/Http/Controllers/Api/ActivityController.php                                                            |   39 -
 app/Http/Controllers/Api/Auth/AuthController.php                                                           |   10 +-
 app/Http/Controllers/Api/Auth/Password/RemindController.php                                                |    4 +-
 app/Http/Controllers/Api/Auth/Password/ResetController.php                                                 |   10 +-
 app/Http/Controllers/Api/Auth/RegistrationController.php                                                   |   19 +-
 app/Http/Controllers/Api/Auth/SocialLoginController.php                                                    |    2 +-
 app/Http/Controllers/Api/Profile/AvatarController.php                                                      |    1 -
 app/Http/Controllers/Api/SessionsController.php                                                            |    2 +
 app/Http/Controllers/Api/SettingsController.php                                                            |    4 +-
 app/Http/Controllers/Api/StatsController.php                                                               |   43 +-
 app/Http/Controllers/Api/Users/AvatarController.php                                                        |   30 +-
 app/Http/Controllers/Api/Users/UsersController.php                                                         |    7 +-
 app/Http/Controllers/Web/ActivityController.php                                                            |   68 --
 app/Http/Controllers/Web/Auth/AuthController.php                                                           |  374 -------
 app/Http/Controllers/Web/Auth/ForgotPasswordController.php                                                 |   45 +
 app/Http/Controllers/Web/Auth/LoginController.php                                                          |  150 +++
 app/Http/Controllers/Web/Auth/PasswordController.php                                                       |  113 --
 app/Http/Controllers/Web/Auth/RegisterController.php                                                       |   63 ++
 app/Http/Controllers/Web/Auth/ResetPasswordController.php                                                  |   61 +
 app/Http/Controllers/Web/Auth/SocialAuthController.php                                                     |   25 +-
 app/Http/Controllers/Web/Auth/TwoFactorTokenController.php                                                 |   75 ++
 app/Http/Controllers/Web/Auth/VerificationController.php                                                   |   41 +
 app/Http/Controllers/Web/{ => Authorization}/PermissionsController.php                                     |   74 +-
 app/Http/Controllers/Web/Authorization/RolePermissionsController.php                                       |   53 +
 app/Http/Controllers/Web/{ => Authorization}/RolesController.php                                           |   43 +-
 app/Http/Controllers/Web/DashboardController.php                                                           |   78 +-
 app/Http/Controllers/Web/InstallController.php                                                             |   14 +-
 app/Http/Controllers/Web/Profile/AvatarController.php                                                      |   85 ++
 app/Http/Controllers/Web/Profile/DetailsController.php                                                     |   45 +
 app/Http/Controllers/Web/Profile/LoginDetailsController.php                                                |   51 +
 app/Http/Controllers/Web/Profile/ProfileController.php                                                     |   64 ++
 app/Http/Controllers/Web/Profile/SessionsController.php                                                    |   52 +
 app/Http/Controllers/Web/ProfileController.php                                                             |  224 ----
 app/Http/Controllers/Web/SettingsController.php                                                            |   36 +-
 app/Http/Controllers/Web/TwoFactorController.php                                                           |   10 +-
 app/Http/Controllers/Web/Users/AvatarController.php                                                        |   83 ++
 app/Http/Controllers/Web/Users/DetailsController.php                                                       |   76 ++
 app/Http/Controllers/Web/Users/LoginDetailsController.php                                                  |   54 +
 app/Http/Controllers/Web/Users/SessionsController.php                                                      |   62 +
 app/Http/Controllers/Web/Users/UsersController.php                                                         |  163 +++
 app/Http/Controllers/Web/UsersController.php                                                               |  326 ------
 app/Http/Kernel.php                                                                                        |   34 +-
 app/Http/Middleware/EncryptCookies.php                                                                     |    2 +-
 app/Http/Middleware/{Registration.php => PasswordResetEnabled.php}                                         |    6 +-
 app/Http/Middleware/RegistrationEnabled.php                                                                |   25 +
 app/Http/Middleware/TwoFactorEnabled.php                                                                   |   25 +
 app/Http/Requests/Activity/GetActivitiesRequest.php                                                        |   28 -
 app/Http/Requests/Auth/PasswordResetRequest.php                                                            |   10 +
 app/Http/Requests/Auth/RegisterRequest.php                                                                 |   31 +-
 app/Http/Requests/Permission/BasePermissionRequest.php                                                     |    8 +-
 app/Http/Requests/Permission/CreatePermissionRequest.php                                                   |    9 +-
 app/Http/Requests/Permission/RemovePermissionRequest.php                                                   |    3 +
 app/Http/Requests/Permission/UpdatePermissionRequest.php                                                   |   11 +-
 app/Http/Requests/User/CreateUserRequest.php                                                               |    1 +
 app/Listeners/PermissionEventsSubscriber.php                                                               |   66 --
 app/Listeners/Registration/SendConfirmationEmail.php                                                       |   43 -
 app/Listeners/Registration/SendSignUpNotification.php                                                      |    8 +-
 app/Listeners/RoleEventsSubscriber.php                                                                     |   72 --
 app/Listeners/UserEventsSubscriber.php                                                                     |  204 ----
 app/Mail/ResetPassword.php                                                                                 |   37 +
 app/Mail/UserRegistered.php                                                                                |   41 +
 app/Notifications/EmailConfirmation.php                                                                    |   54 -
 app/Notifications/ResetPassword.php                                                                        |   53 -
 app/Notifications/UserRegistered.php                                                                       |   70 --
 app/Presenters/Presenter.php                                                                               |   46 +
 app/Presenters/Traits/Presentable.php                                                                      |   26 +
 app/Presenters/UserPresenter.php                                                                           |   25 +-
 app/Providers/AppServiceProvider.php                                                                       |    5 +-
 app/Providers/EventServiceProvider.php                                                                     |   13 +-
 app/Providers/VanguardServiceProvider.php                                                                  |   52 +
 app/Repositories/Activity/ActivityRepository.php                                                           |   59 -
 app/Repositories/Activity/EloquentActivity.php                                                             |   98 --
 app/Rules/ValidPermissionName.php                                                                          |   44 +
 app/Services/Auth/Api/TokenFactory.php                                                                     |    2 +
 app/Services/Auth/ThrottlesLogins.php                                                                      |   81 ++
 app/Services/Logging/UserActivity/Activity.php                                                             |   20 -
 app/Services/Logging/UserActivity/Logger.php                                                               |   86 --
 app/Services/Upload/UserAvatarManager.php                                                                  |   89 +-
 app/Support/Enum/UserStatus.php                                                                            |    6 +-
 app/Support/Plugins/Dashboard/Dashboard.php                                                                |   17 +
 app/Support/Plugins/Dashboard/Widgets/BannedUsers.php                                                      |   44 +
 app/Support/Plugins/Dashboard/Widgets/LatestRegistrations.php                                              |   43 +
 app/Support/Plugins/Dashboard/Widgets/NewUsers.php                                                         |   43 +
 app/Support/Plugins/Dashboard/Widgets/RegistrationHistory.php                                              |   71 ++
 app/Support/Plugins/Dashboard/Widgets/TotalUsers.php                                                       |   43 +
 app/Support/Plugins/Dashboard/Widgets/UnconfirmedUsers.php                                                 |   44 +
 app/Support/Plugins/Dashboard/Widgets/UserActions.php                                                      |   27 +
 app/Support/Plugins/RolesAndPermissions.php                                                                |   31 +
 app/Support/Plugins/Settings.php                                                                           |   40 +
 app/Support/Plugins/Users.php                                                                              |   18 +
 app/Support/Sidebar/Item.php                                                                               |  249 +++++
 app/Support/helpers.php                                                                                    |   21 -
 app/Transformers/ActivityTransformer.php                                                                   |   36 -
 app/Transformers/UserTransformer.php                                                                       |    3 +-
 app/User.php                                                                                               |   38 +-
 composer.json                                                                                              |   56 +-
 composer.lock                                                                                              | 2847 +-
 config/app.php                                                                                             |   19 +-
 config/broadcasting.php                                                                                    |    3 +-
 config/cache.php                                                                                           |   13 +-
 config/database.php                                                                                        |   48 +-
 config/logging.php                                                                                         |   17 +-
 config/mail.php                                                                                            |   11 +
 config/plugins.php                                                                                         |   21 +
 config/queue.php                                                                                           |   10 +-
 config/services.php                                                                                        |   10 +-
 config/session.php                                                                                         |    4 +-
 config/setting.php                                                                                         |   85 ++
 config/settings.php                                                                                        |   17 -
 database/factories/ActivityFactory.php                                                                     |   15 -
 database/factories/RoleFactory.php                                                                         |    2 +-
 database/factories/UserFactory.php                                                                         |    5 +-
 database/migrations/2014_10_12_100000_create_password_resets_table.php                                     |    4 +-
 database/migrations/2015_08_25_172600_create_settings_table.php                                            |   42 -
 database/migrations/2015_10_10_170827_create_users_table.php                                               |    2 +-
 database/migrations/2015_12_29_224252_create_user_activity_table.php                                       |    2 +
 database/migrations/2017_08_24_000000_create_settings_table.php                                            |   41 +
 database/migrations/2019_08_22_140712_create_announcements_table.php                                       |   50 +
 database/seeds/UserSeeder.php                                                                              |    3 +-
 package-lock.json                                                                                          | 5165 +-
 phpunit.xml                                                                                                |    3 +
 public/assets/css/app.css                                                                                  |    2 +-
 public/assets/js/as/app.js                                                                                 |   14 +-
 public/mix-manifest.json                                                                                   |    2 +-
 public/vendor/plugins/announcements/css/announcements.css                                                  |    1 +
 public/vendor/plugins/announcements/js/announcements.js                                                    |    1 +
 public/vendor/plugins/announcements/mix-manifest.json                                                      |    4 +
 resources/lang/de.json                                                                                     |  242 ++++
 resources/lang/de/app.php                                                                                  |  328 +-----
 resources/lang/de/log.php                                                                                  |   32 -
 resources/lang/en/app.php                                                                                  |  331 +-----
 resources/lang/en/log.php                                                                                  |   32 -
 resources/lang/sr.json                                                                                     |  242 ++++
 resources/lang/sr/app.php                                                                                  |  335 +-----
 resources/lang/sr/log.php                                                                                  |   32 -
 resources/sass/_variables.scss                                                                             |   12 +-
 resources/sass/app.scss                                                                                    |    2 +-
 resources/sass/components/card.scss                                                                        |   29 +-
 resources/sass/components/general.scss                                                                     |   12 +-
 resources/sass/components/input.scss                                                                       |    9 +-
 resources/sass/components/navbar.scss                                                                      |   98 +-
 resources/sass/components/sidebar.scss                                                                     |  279 +++--
 resources/sass/components/util.scss                                                                        |   16 +
 resources/views/activity/index.blade.php                                                                   |  100 --
 resources/views/auth/login.blade.php                                                                       |   40 +-
 resources/views/auth/{password/remind.blade.php => passwords/email.blade.php}                              |   26 +-
 resources/views/auth/{password => passwords}/reset.blade.php                                               |   43 +-
 resources/views/auth/register.blade.php                                                                    |   90 +-
 resources/views/auth/token.blade.php                                                                       |   18 +-
 resources/views/auth/tos.blade.php                                                                         |   24 +
 resources/views/auth/verify.blade.php                                                                      |   30 +
 resources/views/dashboard/admin.blade.php                                                                  |  147 +--
 resources/views/dashboard/default.blade.php                                                                |  102 --
 resources/views/emails/notifications/new-registration.blade.php                                            |   10 -
 resources/views/emails/password/remind.blade.php                                                           |   12 -
 resources/views/emails/registration/confirmation.blade.php                                                 |   13 -
 resources/views/errors/403.blade.php                                                                       |    8 -
 resources/views/errors/404.blade.php                                                                       |   12 -
 resources/views/errors/500.blade.php                                                                       |   10 -
 resources/views/errors/503.blade.php                                                                       |    8 -
 resources/views/layouts/app.blade.php                                                                      |   10 +-
 resources/views/layouts/auth.blade.php                                                                     |    5 +-
 resources/views/layouts/errors.blade.php                                                                   |   35 -
 resources/views/layouts/install.blade.php                                                                  |    2 +-
 resources/views/mail/reset-password.blade.php                                                              |   22 +
 resources/views/mail/user-registered.blade.php                                                             |   19 +
 resources/views/partials/navbar.blade.php                                                                  |   33 +-
 resources/views/partials/sidebar.blade.php                                                                 |  122 --
 resources/views/partials/sidebar/items.blade.php                                                           |   26 +
 resources/views/partials/sidebar/main.blade.php                                                            |   37 +
 resources/views/permission/add-edit.blade.php                                                              |   46 +-
 resources/views/permission/index.blade.php                                                                 |   34 +-
 resources/views/plugins/dashboard/widgets/banned-users.blade.php                                           |   14 +
 resources/views/plugins/dashboard/widgets/latest-registrations.blade.php                                   |   31 +
 resources/views/plugins/dashboard/widgets/new-users.blade.php                                              |   14 +
 resources/views/plugins/dashboard/widgets/registration-history-scripts.blade.php                           |   12 +
 resources/views/plugins/dashboard/widgets/registration-history.blade.php                                   |   11 +
 resources/views/plugins/dashboard/widgets/total-users.blade.php                                            |   14 +
 resources/views/plugins/dashboard/widgets/unconfirmed-users.blade.php                                      |   14 +
 resources/views/plugins/dashboard/widgets/user-actions.blade.php                                           |   53 +
 resources/views/role/add-edit.blade.php                                                                    |   46 +-
 resources/views/role/index.blade.php                                                                       |   34 +-
 resources/views/settings/auth.blade.php                                                                    |   12 +-
 resources/views/settings/general.blade.php                                                                 |   18 +-
 resources/views/settings/notifications.blade.php                                                           |   30 +-
 resources/views/settings/partials/auth.blade.php                                                           |   35 +-
 resources/views/settings/partials/recaptcha.blade.php                                                      |   24 +-
 resources/views/settings/partials/registration.blade.php                                                   |   31 +-
 resources/views/settings/partials/throttling.blade.php                                                     |   39 +-
 resources/views/settings/partials/two-factor.blade.php                                                     |   29 +-
 resources/views/user/add.blade.php                                                                         |   20 +-
 resources/views/user/edit.blade.php                                                                        |   60 +-
 resources/views/user/list.blade.php                                                                        |   41 +-
 resources/views/user/partials/auth.blade.php                                                               |   46 +-
 resources/views/user/partials/avatar.blade.php                                                             |   31 +-
 resources/views/user/partials/details.blade.php                                                            |   42 +-
 resources/views/user/partials/row.blade.php                                                                |   35 +-
 resources/views/user/partials/two-factor.blade.php                                                         |   40 +-
 resources/views/user/profile.blade.php                                                                     |   58 +-
 resources/views/user/sessions.blade.php                                                                    |   34 +-
 resources/views/user/two-factor-verification.blade.php                                                     |   25 +-
 resources/views/user/view.blade.php                                                                        |   99 +-
 resources/views/vendor/mail/html/button.blade.php                                                          |   19 +
 resources/views/vendor/mail/html/footer.blade.php                                                          |   11 +
 resources/views/vendor/mail/html/header.blade.php                                                          |    7 +
 resources/views/vendor/mail/html/layout.blade.php                                                          |   54 +
 resources/views/vendor/mail/html/message.blade.php                                                         |   27 +
 resources/views/vendor/mail/html/panel.blade.php                                                           |   13 +
 resources/views/vendor/mail/html/promotion.blade.php                                                       |    7 +
 resources/views/vendor/mail/html/promotion/button.blade.php                                                |   13 +
 resources/views/vendor/mail/html/subcopy.blade.php                                                         |    7 +
 resources/views/vendor/mail/html/table.blade.php                                                           |    3 +
 resources/views/vendor/mail/html/themes/default.css                                                        |  307 +++++
 resources/views/vendor/mail/text/button.blade.php                                                          |    1 +
 resources/views/vendor/mail/text/footer.blade.php                                                          |    1 +
 resources/views/vendor/mail/text/header.blade.php                                                          |    1 +
 resources/views/vendor/mail/text/layout.blade.php                                                          |    9 +
 resources/views/vendor/mail/text/message.blade.php                                                         |   27 +
 resources/views/vendor/mail/text/panel.blade.php                                                           |    1 +
 resources/views/vendor/mail/text/promotion.blade.php                                                       |    1 +
 resources/views/vendor/mail/text/promotion/button.blade.php                                                |    1 +
 resources/views/vendor/mail/text/subcopy.blade.php                                                         |    1 +
 resources/views/vendor/mail/text/table.blade.php                                                           |    1 +
 resources/views/vendor/notifications/email.blade.php                                                       |    6 +-
 routes/api.php                                                                                             |   16 +-
 routes/web.php                                                                                             |  458 +++-----
 storage/app/.gitignore                                                                                     |    0
 storage/framework/.gitignore                                                                               |    1 +
 storage/settings.json                                                                                      |    2 +-
 tests/CreatesApplication.php                                                                               |   24 +
 tests/Feature/Api/Auth/AuthControllerTest.php                                                              |  162 +++
 tests/Feature/Api/Auth/Password/RemindControllerTest.php                                                   |   38 +
 tests/Feature/{Http/Controllers => }/Api/Auth/Password/ResetControllerTest.php                             |   46 +-
 tests/Feature/Api/Auth/RegistrationControllerTest.php                                                      |  104 ++
 tests/Feature/{Http/Controllers => }/Api/Auth/SocialLoginControllerTest.php                                |   69 +-
 tests/Feature/Api/Authorization/PermissionsControllerTest.php                                              |  161 +++
 tests/Feature/{Http/Controllers => }/Api/Authorization/RolePermissionsControllerTest.php                   |   56 +-
 tests/Feature/Api/Authorization/RolesControllerTest.php                                                    |  176 +++
 tests/Feature/{Http/Controllers => }/Api/CountriesControllerTest.php                                       |   16 +-
 tests/Feature/Api/Profile/AuthDetailsControllerTest.php                                                    |   83 ++
 tests/Feature/{Http/Controllers => }/Api/Profile/AvatarControllerTest.php                                  |   74 +-
 tests/Feature/Api/Profile/DetailsControllerTest.php                                                        |  123 ++
 tests/Feature/{Http/Controllers => }/Api/Profile/SessionsControllerTest.php                                |   19 +-
 tests/Feature/{Http/Controllers => }/Api/Profile/TwoFactorControllerTest.php                               |  119 +-
 tests/Feature/{Http/Controllers => }/Api/SessionsControllerTest.php                                        |   61 +-
 tests/Feature/Api/SettingsControllerTest.php                                                               |   38 +
 tests/Feature/{Http/Controllers => }/Api/StatsControllerTest.php                                           |   53 +-
 tests/Feature/Api/Users/AvatarControllerTest.php                                                           |  147 +++
 tests/Feature/{Http/Controllers => }/Api/Users/SessionsControllerTest.php                                  |   26 +-
 tests/Feature/Api/Users/TwoFactorControllerTest.php                                                        |  170 +++
 tests/Feature/{Http/Controllers => }/Api/Users/UsersControllerTest.php                                     |  127 ++-
 tests/Feature/ApiTestCase.php                                                                              |   22 +-
 tests/Feature/FunctionalTestCase.php                                                                       |  203 ----
 tests/Feature/Http/Controllers/Api/ActivityControllerTest.php                                              |  118 --
 tests/Feature/Http/Controllers/Api/Auth/AuthControllerTest.php                                             |  163 ---
 tests/Feature/Http/Controllers/Api/Auth/Password/RemindControllerTest.php                                  |   44 -
 tests/Feature/Http/Controllers/Api/Auth/RegistrationControllerTest.php                                     |  122 --
 tests/Feature/Http/Controllers/Api/Authorization/PermissionsControllerTest.php                             |  190 ----
 tests/Feature/Http/Controllers/Api/Authorization/RolesControllerTest.php                                   |  203 ----
 tests/Feature/Http/Controllers/Api/Profile/AuthDetailsControllerTest.php                                   |   88 --
 tests/Feature/Http/Controllers/Api/Profile/DetailsControllerTest.php                                       |  125 ---
 tests/Feature/Http/Controllers/Api/SettingsControllerTest.php                                              |   37 -
 tests/Feature/Http/Controllers/Api/Users/ActivityControllerTest.php                                        |  109 --
 tests/Feature/Http/Controllers/Api/Users/AvatarControllerTest.php                                          |  154 ---
 tests/Feature/Http/Controllers/Api/Users/TwoFactorControllerTest.php                                       |  196 ----
 tests/Feature/Http/Controllers/Web/ActivityControllerTest.php                                              |   83 --
 tests/Feature/Http/Controllers/Web/Auth/AuthControllerTest.php                                             |  438 --------
 tests/Feature/Http/Controllers/Web/Auth/PasswordControllerTest.php                                         |  159 ---
 tests/Feature/Http/Controllers/Web/PermissionsControllerTest.php                                           |  181 ---
 tests/Feature/Http/Controllers/Web/ProfileControllerTest.php                                               |  266 -----
 tests/Feature/Http/Controllers/Web/RolesControllerTest.php                                                 |  138 ---
 tests/Feature/Http/Controllers/Web/SettingsControllerTest.php                                              |   34 -
 tests/Feature/Http/Controllers/Web/UsersControllerTest.php                                                 |  464 --------
 tests/Feature/ImpersonateUsersTest.php                                                                     |   96 --
 tests/Feature/Listeners/BaseListenerTestCase.php                                                           |   29 -
 tests/Feature/Listeners/PermissionEventsSubscriberTest.php                                                 |   38 -
 tests/Feature/Listeners/RoleEventsSubscriberTest.php                                                       |   44 -
 tests/Feature/Listeners/UserEventsSubscriberTest.php                                                       |  178 ---
 tests/Feature/Repositories/Activity/EloquentActivityTest.php                                               |  128 ---
 tests/Feature/Repositories/Role/EloquentRoleTest.php                                                       |  108 --
 tests/Feature/Web/ImpersonateUsersTest.php                                                                 |   91 ++
 tests/Feature/Web/LoginTest.php                                                                            |  177 +++
 tests/Feature/Web/PermissionsTest.php                                                                      |  348 ++++++
 tests/Feature/Web/RegistrationTest.php                                                                     |  172 +++
 tests/Feature/Web/RolesTest.php                                                                            |  234 ++++
 tests/Feature/Web/Settings/AuthSettingsTest.php                                                            |  105 ++
 tests/Feature/Web/Settings/CaptchaSettingsTest.php                                                         |   49 +
 tests/Feature/Web/Settings/GeneralSettingsTest.php                                                         |   62 +
 tests/Feature/Web/Settings/TwoFactorSettingsTest.php                                                       |   49 +
 tests/Feature/Web/SettingsTest.php                                                                         |  137 +++
 tests/Feature/{Http/Controllers/Web/Auth/SocialAuthControllerTest.php => Web/SocialAuthenticationTest.php} |  141 +--
 tests/Feature/{Http/Controllers/Web/TwoFactorControllerTest.php => Web/TwoFactorAuthTest.php}              |  276 ++---
 tests/Feature/Web/UpdateProfileTest.php                                                                    |  251 +++++
 tests/Feature/Web/UsersTest.php                                                                            |  710 ++++++++++++
 tests/Setup/RoleFactory.php                                                                                |   47 +
 tests/Setup/UserFactory.php                                                                                |   95 ++
 tests/TestCase.php                                                                                         |   65 +-
 tests/{unit => Unit}/Presenters/UserPresenterTest.php                                                      |   31 +-
 tests/{Feature => Unit}/Repositories/Country/EloquentCountryTest.php                                       |   15 +-
 tests/{Feature => Unit}/Repositories/Permission/EloquentPermissionTest.php                                 |   29 +-
 tests/Unit/Repositories/Role/EloquentRoleTest.php                                                          |  117 ++
 tests/{Feature => Unit}/Repositories/Session/DbSessionTest.php                                             |   32 +-
 tests/{Feature => Unit}/Repositories/User/EloquentUserTest.php                                             |  195 ++--
 tests/{Feature => Unit}/Services/Auth/Api/TokenFactoryTest.php                                             |   37 +-
 tests/UpdatesSettings.php                                                                                  |   22 +
 tests/files/.DS_Store                                                                                      |  Bin 6148 -> 0 bytes
 tests/files/image.png                                                                                      |  Bin 38306 -> 0 bytes
 312 files changed, 15667 insertions(+), 16557 deletions(-)