113 lines
5.2 KiB
PHP
113 lines
5.2 KiB
PHP
<?php
|
|
|
|
namespace Modules\Admin;
|
|
|
|
use Illuminate\Auth\Events\Login;
|
|
use Illuminate\Auth\Events\Logout;
|
|
use Illuminate\Support\Facades\Event;
|
|
use Illuminate\Support\Facades\Route;
|
|
use Illuminate\Support\ServiceProvider;
|
|
use Livewire\Livewire;
|
|
use Spatie\Permission\PermissionServiceProvider;
|
|
use Modules\Admin\App\Http\Middleware\AdminTemplateMiddleware;
|
|
use Modules\Admin\App\Listeners\ClearUserCache;
|
|
use Modules\Admin\App\Listeners\HandleUserLogin;
|
|
use Modules\Admin\App\Livewire\Cache\CacheFunctions;
|
|
use Modules\Admin\App\Livewire\Users\UserCount;
|
|
use Modules\Admin\App\Livewire\Users\UserTable;
|
|
use Modules\Admin\App\Livewire\Rbac\RoleCards;
|
|
use Modules\Admin\App\Livewire\Rbac\PermissionsIndex;
|
|
use Modules\Admin\App\Livewire\Cache\CacheStats;
|
|
use Modules\Admin\App\Livewire\Cache\SessionStats;
|
|
use Modules\Admin\App\Livewire\Cache\MemcachedStats;
|
|
use Modules\Admin\App\Livewire\Cache\RedisStats;
|
|
use Modules\Admin\App\Livewire\AdminSettings\ApplicationSettings;
|
|
use Modules\Admin\App\Livewire\AdminSettings\GeneralSettings;
|
|
use Modules\Admin\App\Livewire\AdminSettings\InterfaceSettings;
|
|
use Modules\Admin\App\Livewire\AdminSettings\MailSmtpSettings;
|
|
use Modules\Admin\App\Livewire\AdminSettings\MailSenderResponseSettings;
|
|
use Modules\Admin\App\Livewire\WebsiteSettings\AnalyticsSettings;
|
|
use Modules\Admin\App\Livewire\WebsiteSettings\ChatSettings;
|
|
use Modules\Admin\App\Livewire\WebsiteSettings\ContactFormSettings;
|
|
use Modules\Admin\App\Livewire\WebsiteSettings\ContactInfoSettings;
|
|
use Modules\Admin\App\Livewire\WebsiteSettings\FaviconSettings;
|
|
use Modules\Admin\App\Livewire\WebsiteSettings\ImageLogoSettings;
|
|
use Modules\Admin\App\Livewire\WebsiteSettings\LocationSettings;
|
|
use Modules\Admin\App\Livewire\WebsiteSettings\SocialSettings;
|
|
use Modules\Admin\App\Livewire\WebsiteSettings\TemplateSettings;
|
|
use Modules\Admin\App\Livewire\WebsiteSettings\WebsiteSettings;
|
|
use Modules\Admin\App\Livewire\WebsiteSettings\LegalSettings;
|
|
use Modules\Admin\App\Models\User;
|
|
use Modules\Admin\App\Providers\FortifyServiceProvider;
|
|
use Modules\Admin\App\Providers\GlobalSettingsProvider;
|
|
use Modules\Admin\App\Providers\VuexyAdminProvider;
|
|
use OwenIt\Auditing\AuditableObserver;
|
|
|
|
class ModuleServiceProvider extends ServiceProvider
|
|
{
|
|
public static $prefixRoute = 'admin';
|
|
|
|
public function register()
|
|
{
|
|
// Register the module's services and providers
|
|
$this->app->register(FortifyServiceProvider::class);
|
|
$this->app->register(PermissionServiceProvider::class);
|
|
$this->app->register(GlobalSettingsProvider::class);
|
|
$this->app->register(VuexyAdminProvider::class);
|
|
}
|
|
|
|
|
|
public function boot()
|
|
{
|
|
// Registrar alias del middleware
|
|
$this->app['router']->aliasMiddleware('admin.settings', AdminTemplateMiddleware::class);
|
|
|
|
// Register the module's routes
|
|
Route::middleware(['web'])->group(__DIR__ . '/routes.php');
|
|
|
|
// Register the module's views and resources
|
|
$this->loadViewsFrom(__DIR__ . '/Resources/views', 'admin');
|
|
|
|
// Register the migrations
|
|
$this->loadMigrationsFrom(__DIR__ . '/Database/migrations');
|
|
|
|
// Registrar manualmente listeners
|
|
Event::listen(Login::class, HandleUserLogin::class);
|
|
Event::listen(Logout::class, ClearUserCache::class);
|
|
|
|
// Register the module's Livewire components
|
|
Livewire::component('user-count', UserCount::class);
|
|
Livewire::component('user-table', UserTable::class);
|
|
Livewire::component('role-card', RoleCards::class);
|
|
Livewire::component('permissions-index', PermissionsIndex::class);
|
|
|
|
Livewire::component('general-settings', GeneralSettings::class);
|
|
Livewire::component('application-settings', ApplicationSettings::class);
|
|
Livewire::component('interface-settings', InterfaceSettings::class);
|
|
|
|
Livewire::component('cache-stats', CacheStats::class);
|
|
Livewire::component('session-stats', SessionStats::class);
|
|
Livewire::component('redis-stats', RedisStats::class);
|
|
Livewire::component('memcached-stats', MemcachedStats::class);
|
|
Livewire::component('cache-functions', CacheFunctions::class);
|
|
|
|
Livewire::component('mail-smtp-settings', MailSmtpSettings::class);
|
|
Livewire::component('mail-sender-response-settings', MailSenderResponseSettings::class);
|
|
|
|
Livewire::component('website-settings', WebsiteSettings::class);
|
|
Livewire::component('website-favicon-settings', FaviconSettings::class);
|
|
Livewire::component('website-image-logo-settings', ImageLogoSettings::class);
|
|
Livewire::component('website-social-settings', SocialSettings::class);
|
|
Livewire::component('website-contact-form-settings', ContactFormSettings::class);
|
|
Livewire::component('website-contact-info-settings', ContactInfoSettings::class);
|
|
Livewire::component('website-location-settings', LocationSettings::class);
|
|
Livewire::component('website-chat-settings', ChatSettings::class);
|
|
Livewire::component('website-analytics-settings', AnalyticsSettings::class);
|
|
Livewire::component('website-template-settings', TemplateSettings::class);
|
|
Livewire::component('website-legal-settings', LegalSettings::class);
|
|
|
|
// Enable auditing
|
|
User::observe(AuditableObserver::class);
|
|
}
|
|
}
|