ldc-web-admin-secure-laravel/src/AdminSecureServiceProvider.php
Jérémy Munsch a3f9712b27
Fixes #1 Allows connections from private ip ranges
- Add LDC_WEB_API_ENDPOINT config
- Add composer dep dxw/cidr
2023-06-02 16:54:16 +02:00

57 lines
1.7 KiB
PHP

<?php
namespace LDC\WebAdminSecureLaravel;
use Illuminate\Console\Scheduling\Schedule;
use Illuminate\Contracts\Foundation\Application;
use Illuminate\Support\ServiceProvider;
use Illuminate\Routing\Router;
use LDC\WebAdminSecureLaravel\Console\SyncFromLDCWeb;
use LDC\WebAdminSecureLaravel\Http\Middleware\AdminSecureMiddleware;
class AdminSecureServiceProvider extends ServiceProvider
{
/**
* Bootstrap any application services.
*
* @return void
*/
public function boot()
{
$this->publishes([
__DIR__ . '/../config' => config_path(),
], 'config');
// * Register the command if we are using the application via the CLI .
$this->commands([SyncFromLDCWeb::class]);
// * Set filter condition
$this->app->singleton('hasToFilterIp', fn (Application $app) => $app->environment('production'));
// * Cron Report everyday
$this->app->booted(function () {
if ($this->app->make('hasToFilterIp')) {
/** @var \Illuminate\Console\Scheduling\Schedule */
$schedule = $this->app->make(Schedule::class);
$schedule->command('ldcweb:admin-secure-sync')->daily();
}
});
/** @var \Illuminate\Routing\Router */
$router = $this->app->make(Router::class);
$router->aliasMiddleware('admin-secure', AdminSecureMiddleware::class);
}
/**
* Register any application services.
*
* @return void
*/
public function register()
{
$this->mergeConfigFrom(
sprintf('%s/../config/admin-secure.php', __DIR__),
'admin-secure'
);
}
}