moved offline payments permissions to module

This commit is contained in:
denisdulici
2020-01-12 01:32:20 +03:00
parent 3b652df7cd
commit 319fac06ac
6 changed files with 85 additions and 28 deletions

View File

@ -0,0 +1,56 @@
<?php
namespace Modules\OfflinePayments\Listeners;
use App\Events\Module\Installed as Event;
use App\Models\Auth\Role;
use App\Models\Auth\Permission;
class InstallModule
{
/**
* Handle the event.
*
* @param Event $event
* @return void
*/
public function handle(Event $event)
{
if ($event->alias != 'offline-payments') {
return;
}
$this->updatePermissions();
}
protected function updatePermissions()
{
$permissions = [];
$permissions[] = Permission::firstOrCreate([
'name' => 'read-offline-payments-settings',
'display_name' => 'Read Offline Payments Settings',
'description' => 'Read Offline Payments Settings',
]);
$permissions[] = Permission::firstOrCreate([
'name' => 'update-offline-payments-settings',
'display_name' => 'Update Offline Payments Settings',
'description' => 'Update Offline Payments Settings',
]);
$roles = Role::all()->filter(function ($r) {
return $r->hasPermission('read-admin-panel');
});
foreach ($roles as $role) {
foreach ($permissions as $permission) {
if ($role->hasPermission($permission->name)) {
continue;
}
$role->attachPermission($permission);
}
}
}
}

View File

@ -0,0 +1,28 @@
<?php
namespace Modules\OfflinePayments\Providers;
use Illuminate\Foundation\Support\Providers\EventServiceProvider as ServiceProvider;
use Modules\OfflinePayments\Listeners\InstallModule;
use Modules\OfflinePayments\Listeners\ShowPaymentMethod;
use Modules\OfflinePayments\Listeners\ShowSetting;
class Event extends ServiceProvider
{
/**
* The event listener mappings for the module.
*
* @var array
*/
protected $listen = [
\App\Events\Module\Installed::class => [
InstallModule::class,
],
\App\Events\Module\PaymentMethodShowing::class => [
ShowPaymentMethod::class,
],
\App\Events\Module\SettingShowing::class => [
ShowSetting::class,
],
];
}

View File

@ -3,8 +3,6 @@
namespace Modules\OfflinePayments\Providers;
use Illuminate\Support\ServiceProvider as Provider;
use Modules\OfflinePayments\Listeners\ShowPaymentMethod;
use Modules\OfflinePayments\Listeners\ShowSetting;
class Main extends Provider
{
@ -17,7 +15,6 @@ class Main extends Provider
{
$this->loadTranslations();
$this->loadViews();
$this->loadEvents();
}
/**
@ -50,17 +47,6 @@ class Main extends Provider
$this->loadTranslationsFrom(__DIR__ .'/../Resources/lang', 'offline-payments');
}
/**
* Load events.
*
* @return void
*/
public function loadEvents()
{
$this->app['events']->listen(\App\Events\Module\PaymentMethodShowing::class, ShowPaymentMethod::class);
$this->app['events']->listen(\App\Events\Module\SettingShowing::class, ShowSetting::class);
}
/**
* Load routes.
*

View File

@ -4,6 +4,7 @@
"category": "payment-method",
"active": 1,
"providers": [
"Modules\\OfflinePayments\\Providers\\Event",
"Modules\\OfflinePayments\\Providers\\Main"
],
"aliases": {},