From 3b35f0353ea05044358596b05858f3619e0fa138 Mon Sep 17 00:00:00 2001 From: "Moinuddin S. Khaja" Date: Thu, 8 Sep 2022 08:52:30 +0530 Subject: [PATCH 1/4] Adding Install Command --- src/AuthLoggerServiceProvider.php | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/AuthLoggerServiceProvider.php b/src/AuthLoggerServiceProvider.php index b042440..c04af1c 100644 --- a/src/AuthLoggerServiceProvider.php +++ b/src/AuthLoggerServiceProvider.php @@ -6,6 +6,7 @@ use Spargon\AuthLogger\Providers\EventServiceProvider; use Spatie\LaravelPackageTools\Package; use Spatie\LaravelPackageTools\PackageServiceProvider; +use Spatie\LaravelPackageTools\Commands\InstallCommand; class AuthLoggerServiceProvider extends PackageServiceProvider { @@ -17,7 +18,20 @@ public function configurePackage(Package $package): void ->hasViews() ->hasTranslations() ->hasMigration('create_auth_logs_table') - ->hasCommand(AuthLoggerCommand::class); + ->hasCommand(AuthLoggerCommand::class) + ->hasInstallCommand(function(InstallCommand $command) { + $command + ->startWith(function(InstallCommand $command) { + $command->info('Setting up the Laravel Auth Logger package by Spargon!'); + }) + ->publishConfigFile() + ->publishMigrations() + ->askToRunMigrations() + ->askToStarRepoOnGitHub('spargon/laravel-auth-logger') + ->endWith(function(InstallCommand $command) { + $command->info('Have a great day fellow tinkerers!'); + }); + }); } public function packageRegistered() From 4e1ad467225604123598af126dfc34e7f5c321b6 Mon Sep 17 00:00:00 2001 From: "Moinuddin S. Khaja" Date: Thu, 8 Sep 2022 09:06:30 +0530 Subject: [PATCH 2/4] Prepping for 1.4.0 release. --- CHANGELOG.md | 48 +++++++++++++++++++++++++++++++++++++++++--- README.md | 29 ++++++++++---------------- install-command.jpg | Bin 0 -> 46580 bytes 3 files changed, 56 insertions(+), 21 deletions(-) create mode 100644 install-command.jpg diff --git a/CHANGELOG.md b/CHANGELOG.md index bcae379..943b91d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,12 +2,54 @@ All notable changes to `laravel-auth-logger` will be documented in this file +## 1.4.0 - 2022-09-08 + +- Added a new Install Command. + +## 1.3.0 - 2022-02-23 + +- Added Support for Laravel 9. + +## 1.2.2 - 2021-03-17 + +- Added Location Tagging (Dev - Experimental) Release Version. + +## 1.2.2 - 2021-03-11 + +- Adds Support for Laravel 7. + +## 1.2.1 - 2021-03-06 + +- Fixes Composer Require Issue. + +## 1.2.0 - 2021-03-06 + +- This release completely revamps the ServiceProvider that ships with this package. Along with that comes new commands for publishing assets (refer to the readme file for details). +- Added config option to change the default auth_logs table name. +- Added much-needed Slack customization option and improvements. + +## 1.1.1 - 2021-03-06 + +- Added Icons for User Devices. + +## 1.1.0 - 2021-02-25 + +- Adding Support for Laravel's logoutOtherDevices Method. + +## 1.0.7 - 2021-01-30 + +- Parsing user created_at column. + +## 1.0.6 - 2020-12-21 + +- Minor variable name change. + ## 1.0.5 - 2020-12-14 -- Added Multi-Language Support -- Fixed Minor Issues & Typos +- Added Multi-Language Support. +- Fixed Minor Issues & Typos. ## 1.0.0 - 2020-11-21 -- Initial release +- Initial release. diff --git a/README.md b/README.md index 94f2d46..86a2eba 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ Laravel Auth Logger stores user authentication logs and sends out notifications ## Installation -> Laravel Auth Logger requires PHP 7.0+ and currently supports Laravel 7, 8. +> Laravel Auth Logger requires PHP 7.0+ and currently supports Laravel 7, 8 & 9. You can install the package via composer: @@ -18,27 +18,16 @@ You can install the package via composer: composer require spargon/laravel-auth-logger ``` -After installing the Laravel-Auth-Logger package, you need to publish the `auth-logger` config file using the artisan command below in your console: +After installing the Laravel-Auth-Logger package, you need run the install command which will take take of everything you need to get started. Type the following artisan command in your console: ```bash -php artisan vendor:publish --tag=auth-logger-config +php artisan auth-logger:install ``` +This will publish the `auth-logger.php` config file, publish the migration files and ask you for permission to run said migrations. -Next, you need to publish the migration file using the `vendor:publish` command in your console: +![Install Command Sample](install-command.jpg) -```bash -php artisan vendor:publish --tag=auth-logger-migrations -``` - -If you want to change the name of the auth-logger table, you can do so by changing the vaule of `table_name` in the `config/auth-logger.php` file (this step is optional). - -After that you need to migrate the recently published file to your database using the artisan command below (this will create a new table in your database for your app to use). - -```bash -php artisan migrate -``` - -Lastly, you need to add the **`AuthLogable`** and **`Notifiable`** traits to your authenticatable model (by default its, `App\Models\User` model). These traits provides you with various methods to get the data generated by the auth logger, such as last login time, last login IP address, and sets the channels to notify the user when they login from a new device: +Once installed, you need to add the **`AuthLogable`** and **`Notifiable`** traits to your authenticatable model (by default its, `App\Models\User` model). These traits provides you with various methods to get the data generated by the auth logger, such as last login time, last login IP address, and sets the channels to notify the user when they login from a new device: ``` php use Illuminate\Notifications\Notifiable; @@ -159,11 +148,15 @@ php artisan vendor:publish --tag=auth-logger-translations ``` *These are optional files. You don't need to publish them for the package to work. They exist only for cases where you want to make any changes to the files yourself.* +#### Change Database Table Name + +If you want to change the name of the auth-logger table, you can do so by changing the vaule of `table_name` in the `config/auth-logger.php` file (this step is optional - you must also update the table name in the migrations/database to reflect the same). + ## Experimental (dev-geoip) Currently we are experimenting with an implention of Location Tagging (using GeoIP package from Torann). You can checkout the `geoip` branch to play around with it or get the dev-geoip release from packagist using `composer require spargon/laravel-auth-logger:dev-geoip` -*This is an experimental release of location tagging. Accuracy is not 100% guaranteed. Use it at your own risk.* +*This is an experimental release of location tagging. Accuracy is not 100% guaranteed. Use it at your own risk. PS> This experimental version does not contain the install command.* ## Testing diff --git a/install-command.jpg b/install-command.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d16b7d584d574aa5094ae813023cd83ac520546e GIT binary patch literal 46580 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 z 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 literal 0 HcmV?d00001 From c60bc840b92d33edeed431d45796c116b27aae51 Mon Sep 17 00:00:00 2001 From: "Moinuddin S. Khaja" Date: Thu, 8 Sep 2022 09:08:22 +0530 Subject: [PATCH 3/4] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 86a2eba..9629b65 100644 --- a/README.md +++ b/README.md @@ -18,12 +18,12 @@ You can install the package via composer: composer require spargon/laravel-auth-logger ``` -After installing the Laravel-Auth-Logger package, you need run the install command which will take take of everything you need to get started. Type the following artisan command in your console: +After installing the **Laravel-Auth-Logger** package, you need run the install command which will take care of everything you need to get started. Type the following artisan command in your console: ```bash php artisan auth-logger:install ``` -This will publish the `auth-logger.php` config file, publish the migration files and ask you for permission to run said migrations. +This will publish the `config/auth-logger.php` file, publish the necessary migration files and ask you for permission to run said migrations. ![Install Command Sample](install-command.jpg) From dd8396ace8c906cf5ddd25aa5f07e09a4dca459f Mon Sep 17 00:00:00 2001 From: StyleCI Bot Date: Thu, 8 Sep 2022 03:40:33 +0000 Subject: [PATCH 4/4] Apply fixes from StyleCI --- src/AuthLoggerServiceProvider.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/AuthLoggerServiceProvider.php b/src/AuthLoggerServiceProvider.php index c04af1c..09f075a 100644 --- a/src/AuthLoggerServiceProvider.php +++ b/src/AuthLoggerServiceProvider.php @@ -4,9 +4,9 @@ use Spargon\AuthLogger\Commands\AuthLoggerCommand; use Spargon\AuthLogger\Providers\EventServiceProvider; +use Spatie\LaravelPackageTools\Commands\InstallCommand; use Spatie\LaravelPackageTools\Package; use Spatie\LaravelPackageTools\PackageServiceProvider; -use Spatie\LaravelPackageTools\Commands\InstallCommand; class AuthLoggerServiceProvider extends PackageServiceProvider { @@ -19,16 +19,16 @@ public function configurePackage(Package $package): void ->hasTranslations() ->hasMigration('create_auth_logs_table') ->hasCommand(AuthLoggerCommand::class) - ->hasInstallCommand(function(InstallCommand $command) { + ->hasInstallCommand(function (InstallCommand $command) { $command - ->startWith(function(InstallCommand $command) { + ->startWith(function (InstallCommand $command) { $command->info('Setting up the Laravel Auth Logger package by Spargon!'); }) ->publishConfigFile() ->publishMigrations() ->askToRunMigrations() ->askToStarRepoOnGitHub('spargon/laravel-auth-logger') - ->endWith(function(InstallCommand $command) { + ->endWith(function (InstallCommand $command) { $command->info('Have a great day fellow tinkerers!'); }); });