mirror of
https://github.com/librenms/librenms.git
synced 2024-10-07 16:52:45 +00:00
Rework socialite integration (#14367)
* Rework socialite integration Prevents unnecessary work each boot * Update SocialiteController.php * Gen 2
This commit is contained in:
@@ -40,6 +40,7 @@ class SocialiteController extends Controller
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
app()->register(\SocialiteProviders\Manager\ServiceProvider::class);
|
||||
$this->injectConfig();
|
||||
}
|
||||
|
||||
|
44
app/Listeners/SocialiteWasCalledListener.php
Normal file
44
app/Listeners/SocialiteWasCalledListener.php
Normal file
@@ -0,0 +1,44 @@
|
||||
<?php
|
||||
|
||||
namespace App\Listeners;
|
||||
|
||||
use LibreNMS\Config;
|
||||
use Log;
|
||||
|
||||
class SocialiteWasCalledListener
|
||||
{
|
||||
/**
|
||||
* Create the event listener.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Handle the event.
|
||||
*
|
||||
* @param \SocialiteProviders\Manager\SocialiteWasCalled $event
|
||||
* @return void
|
||||
*/
|
||||
public function handle(\SocialiteProviders\Manager\SocialiteWasCalled $event): void
|
||||
{
|
||||
foreach (Config::get('auth.socialite.configs', []) as $provider => $config) {
|
||||
// Treat not set as "disabled"
|
||||
if (! isset($config['listener'])) {
|
||||
continue;
|
||||
}
|
||||
$listener = $config['listener'];
|
||||
|
||||
if (class_exists($listener)) {
|
||||
(new $listener)->handle($event);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
Log::error("Wrong value for auth.socialite.configs.$provider.listener set, class: '$listener' does not exist!");
|
||||
}
|
||||
}
|
||||
}
|
@@ -30,6 +30,9 @@ class EventServiceProvider extends ServiceProvider
|
||||
\Illuminate\Database\Events\StatementPrepared::class => [
|
||||
\App\Listeners\LegacyQueryListener::class,
|
||||
],
|
||||
\SocialiteProviders\Manager\SocialiteWasCalled::class => [
|
||||
\App\Listeners\SocialiteWasCalledListener::class,
|
||||
],
|
||||
];
|
||||
|
||||
/**
|
||||
|
@@ -1,41 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Providers;
|
||||
|
||||
use Illuminate\Support\ServiceProvider;
|
||||
use LibreNMS\Config;
|
||||
|
||||
class SocialiteListenersServiceProvider extends ServiceProvider
|
||||
{
|
||||
/**
|
||||
* Register services.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function register()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Bootstrap services.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function boot()
|
||||
{
|
||||
foreach (Config::get('auth.socialite.configs', []) as $provider => $config) {
|
||||
// Treat not set as "disabled"
|
||||
if (! isset($config['listener'])) {
|
||||
continue;
|
||||
}
|
||||
$listener = $config['listener'];
|
||||
|
||||
if (class_exists($listener)) {
|
||||
$this->app['events']->listen(\SocialiteProviders\Manager\SocialiteWasCalled::class, "$listener@handle");
|
||||
} else {
|
||||
$this->app['log']->error("Wrong value for auth.socialite.configs.$provider.listener set, class: '$listener' does not exist!");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@@ -89,7 +89,8 @@
|
||||
"laravel": {
|
||||
"dont-discover": [
|
||||
"nunomaduro/laravel-console-summary",
|
||||
"facade/ignition"
|
||||
"facade/ignition",
|
||||
"socialiteproviders/manager"
|
||||
]
|
||||
}
|
||||
},
|
||||
|
3
composer.lock
generated
3
composer.lock
generated
@@ -4,7 +4,7 @@
|
||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||
"This file is @generated automatically"
|
||||
],
|
||||
"content-hash": "5f22d1ad8c4de6777b2690d0115f7afe",
|
||||
"content-hash": "807216c31606cc7c4fbc5f0a3d05bc94",
|
||||
"packages": [
|
||||
{
|
||||
"name": "amenadiel/jpgraph",
|
||||
@@ -12446,6 +12446,7 @@
|
||||
"ext-pcre": "*",
|
||||
"ext-pdo": "*",
|
||||
"ext-session": "*",
|
||||
"ext-simplexml": "*",
|
||||
"ext-xml": "*",
|
||||
"ext-zlib": "*"
|
||||
},
|
||||
|
@@ -173,7 +173,6 @@ return [
|
||||
/*
|
||||
* Package Service Providers...
|
||||
*/
|
||||
\SocialiteProviders\Manager\ServiceProvider::class,
|
||||
|
||||
/*
|
||||
* LibreNMS Service Providers...
|
||||
@@ -186,9 +185,6 @@ return [
|
||||
// App\Providers\BroadcastServiceProvider::class,
|
||||
App\Providers\EventServiceProvider::class,
|
||||
App\Providers\RouteServiceProvider::class,
|
||||
|
||||
App\Providers\SocialiteListenersServiceProvider::class,
|
||||
|
||||
App\Providers\ComposerServiceProvider::class,
|
||||
App\Providers\DatastoreServiceProvider::class,
|
||||
App\Providers\SnmptrapProvider::class,
|
||||
|
Reference in New Issue
Block a user