From 319fac06ac2b45a644e78d742b10b997939b7d4c Mon Sep 17 00:00:00 2001 From: denisdulici Date: Sun, 12 Jan 2020 01:32:20 +0300 Subject: [PATCH] moved offline payments permissions to module --- app/Providers/Event.php | 12 ---- database/seeds/Roles.php | 2 - .../Listeners/InstallModule.php | 56 +++++++++++++++++++ modules/OfflinePayments/Providers/Event.php | 28 ++++++++++ modules/OfflinePayments/Providers/Main.php | 14 ----- modules/OfflinePayments/module.json | 1 + 6 files changed, 85 insertions(+), 28 deletions(-) create mode 100644 modules/OfflinePayments/Listeners/InstallModule.php create mode 100644 modules/OfflinePayments/Providers/Event.php diff --git a/app/Providers/Event.php b/app/Providers/Event.php index d2876b51a..04e0bf93e 100644 --- a/app/Providers/Event.php +++ b/app/Providers/Event.php @@ -65,16 +65,4 @@ class Event extends Provider 'App\Listeners\Common\TaxSummaryReport', 'App\Listeners\Common\ProfitLossReport', ]; - - /** - * Register any events for your application. - * - * @return void - */ - public function boot() - { - parent::boot(); - - // - } } diff --git a/database/seeds/Roles.php b/database/seeds/Roles.php index 055d493be..2dcefec95 100644 --- a/database/seeds/Roles.php +++ b/database/seeds/Roles.php @@ -59,7 +59,6 @@ class Roles extends Seeder 'modules-my' => 'r', 'modules-tiles' => 'r', 'notifications' => 'r,u', - 'offline-payments-settings' => 'r,u,d', 'reports-expense-summary' => 'r', 'reports-income-summary' => 'r', 'reports-income-expense-summary' => 'r', @@ -111,7 +110,6 @@ class Roles extends Seeder 'sales-revenues' => 'c,r,u,d', 'install-updates' => 'r,u', 'notifications' => 'r,u', - 'offline-payments-settings' => 'r,u,d', 'reports-expense-summary' => 'r', 'reports-income-summary' => 'r', 'reports-income-expense-summary' => 'r', diff --git a/modules/OfflinePayments/Listeners/InstallModule.php b/modules/OfflinePayments/Listeners/InstallModule.php new file mode 100644 index 000000000..a0034931a --- /dev/null +++ b/modules/OfflinePayments/Listeners/InstallModule.php @@ -0,0 +1,56 @@ +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); + } + } + } +} diff --git a/modules/OfflinePayments/Providers/Event.php b/modules/OfflinePayments/Providers/Event.php new file mode 100644 index 000000000..ef2dce2d9 --- /dev/null +++ b/modules/OfflinePayments/Providers/Event.php @@ -0,0 +1,28 @@ + [ + InstallModule::class, + ], + \App\Events\Module\PaymentMethodShowing::class => [ + ShowPaymentMethod::class, + ], + \App\Events\Module\SettingShowing::class => [ + ShowSetting::class, + ], + ]; +} diff --git a/modules/OfflinePayments/Providers/Main.php b/modules/OfflinePayments/Providers/Main.php index cda09e9db..7950cfce0 100644 --- a/modules/OfflinePayments/Providers/Main.php +++ b/modules/OfflinePayments/Providers/Main.php @@ -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. * diff --git a/modules/OfflinePayments/module.json b/modules/OfflinePayments/module.json index fa90c8336..68bed634d 100644 --- a/modules/OfflinePayments/module.json +++ b/modules/OfflinePayments/module.json @@ -4,6 +4,7 @@ "category": "payment-method", "active": 1, "providers": [ + "Modules\\OfflinePayments\\Providers\\Event", "Modules\\OfflinePayments\\Providers\\Main" ], "aliases": {},