update permissions for settings in json

This commit is contained in:
denisdulici
2020-01-06 17:52:46 +03:00
parent a71de5a2c4
commit 137a253801
2 changed files with 34 additions and 2 deletions

View File

@ -59,7 +59,6 @@ class Roles extends Seeder
'modules-tiles' => 'r',
'notifications' => 'r,u',
'offline-payments-settings' => 'r,u,d',
'paypal-standard-settings' => 'r,u',
'reports-expense-summary' => 'r',
'reports-income-summary' => 'r',
'reports-income-expense-summary' => 'r',
@ -115,7 +114,6 @@ class Roles extends Seeder
'install-updates' => 'r,u',
'notifications' => 'r,u',
'offline-payments-settings' => 'r,u,d',
'paypal-standard-settings' => 'r,u',
'reports-expense-summary' => 'r',
'reports-income-summary' => 'r',
'reports-income-expense-summary' => 'r',

View File

@ -7,6 +7,8 @@ use App\Models\Module\ModuleHistory;
use Illuminate\Console\Command;
use Illuminate\Support\Str;
use Symfony\Component\Console\Input\InputArgument;
use App\Models\Auth\Permission;
use App\Models\Auth\Role;
class InstallCommand extends Command
{
@ -54,6 +56,10 @@ class InstallCommand extends Command
'description' => trans('modules.installed', ['module' => $alias]),
]);
if (!empty($module->get('settings'))) {
$this->updatePermissions($module);
}
$this->call('cache:clear');
// Update database
@ -82,4 +88,32 @@ class InstallCommand extends Command
array('company_id', InputArgument::REQUIRED, 'Company ID.'),
);
}
protected function updatePermissions($module)
{
$permissions = [];
$permissions[] = Permission::firstOrCreate([
'name' => 'read-' . $module->getAlias() . '-settings',
'display_name' => 'Read ' . $module->getName() . ' Settings',
'description' => 'Read ' . $module->getName() . ' Settings',
]);
$permissions[] = Permission::firstOrCreate([
'name' => 'update-' . $module->getAlias() . '-settings',
'display_name' => 'Update ' . $module->getName() . ' Settings',
'description' => 'Update ' . $module->getName() . ' Settings',
]);
// Attach permission to roles
$roles = Role::all()->filter(function ($r) {
return $r->hasPermission('read-admin-panel');
});
foreach ($roles as $role) {
foreach ($permissions as $permission) {
$role->attachPermission($permission);
}
}
}
}