diff --git a/app/DataMapper/Analytics/LoginFailure.php b/app/DataMapper/Analytics/LoginFailure.php new file mode 100644 index 000000000000..af9d235e19de --- /dev/null +++ b/app/DataMapper/Analytics/LoginFailure.php @@ -0,0 +1,42 @@ + "anonymous@example.com", 'name' => "Anonymous User", ]); - } elseif (auth()->guard('user')->user() && auth()->user()->company()->account->report_errors) { + } elseif (auth()->guard('user')->user() && auth()->user()->company() && auth()->user()->company()->account->report_errors) { $scope->setUser([ 'id' => auth()->user()->account->key, 'email' => "anonymous@example.com", diff --git a/app/Http/Controllers/Auth/LoginController.php b/app/Http/Controllers/Auth/LoginController.php index aebf6acae4f2..c9ecda95eb3a 100644 --- a/app/Http/Controllers/Auth/LoginController.php +++ b/app/Http/Controllers/Auth/LoginController.php @@ -11,6 +11,8 @@ namespace App\Http\Controllers\Auth; +use App\DataMapper\Analytics\LoginFailure; +use App\DataMapper\Analytics\LoginSuccess; use App\Http\Controllers\BaseController; use App\Http\Controllers\Controller; use App\Jobs\Account\CreateAccount; @@ -26,6 +28,7 @@ use Illuminate\Http\Request; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Log; use Laravel\Socialite\Facades\Socialite; +use Turbo124\Collector\CollectorFacade as Collector; class LoginController extends BaseController { @@ -168,6 +171,11 @@ class LoginController extends BaseController } if ($this->attemptLogin($request)) { + + Collector::create(new LoginSuccess()) + ->increment() + ->batch(); + $user = $this->guard()->user(); $user->setCompany($user->company_user->account->default_company); @@ -177,6 +185,11 @@ class LoginController extends BaseController return $this->listResponse($ct); } else { + + Collector::create(new LoginFailure()) + ->increment() + ->batch(); + $this->incrementLoginAttempts($request); return response() diff --git a/app/Jobs/Util/SendFailedEmails.php b/app/Jobs/Util/SendFailedEmails.php index 2e07f6e07d3b..3ba120495a52 100644 --- a/app/Jobs/Util/SendFailedEmails.php +++ b/app/Jobs/Util/SendFailedEmails.php @@ -59,7 +59,7 @@ class SendFailedEmails implements ShouldQueue private function processEmails() { - +\Log::error("processing emails"); //info("process emails"); //@todo check that the quota is available for the job diff --git a/composer.json b/composer.json index 428c6cad326b..345516d5c8a9 100644 --- a/composer.json +++ b/composer.json @@ -53,6 +53,7 @@ "staudenmeir/eloquent-has-many-deep": "^1.11", "stripe/stripe-php": "^7.0", "superbalist/laravel-google-cloud-storage": "^2.2", + "turbo124/collector": "^0.2.0", "webpatser/laravel-countries": "dev-master#75992ad", "yajra/laravel-datatables-oracle": "~9.0" }, diff --git a/config/app.php b/config/app.php index 8f5c5d1a1835..aab966b68235 100644 --- a/config/app.php +++ b/config/app.php @@ -236,6 +236,8 @@ return [ 'Countries' => 'Webpatser\Countries\CountriesFacade', 'CustomMessage' => App\Utils\ClientPortal\CustomMessage\CustomMessageFacade::class, + 'Collector' => Turbo124\Collector\CollectorFacade::class, + ], ]; diff --git a/config/collector.php b/config/collector.php new file mode 100644 index 000000000000..64f4ed04d7fd --- /dev/null +++ b/config/collector.php @@ -0,0 +1,31 @@ + true, + + /** + * The API endpoint for logs + */ + 'endpoint' => 'https://app.lightlogs.com/api', + + /** + * Your API key + */ + 'api_key' => env('COLLECTOR_API_KEY',''), + + /** + * Should batch requests + */ + 'batch' => true, + + /** + * The default key used to store + * metrics for batching + */ + 'cache_key' => 'collector', + +]; \ No newline at end of file diff --git a/database/seeds/RandomDataSeeder.php b/database/seeds/RandomDataSeeder.php index 871588befefb..7c10afb27e4c 100644 --- a/database/seeds/RandomDataSeeder.php +++ b/database/seeds/RandomDataSeeder.php @@ -118,6 +118,7 @@ class RandomDataSeeder extends Seeder 'password' => Hash::make(config('ninja.testvars.password')), 'email_verified_at' => now(), 'client_id' =>$client->id, + 'user_id' => $user->id, 'is_primary' => true, 'contact_key' => \Illuminate\Support\Str::random(40), ]);