diff --git a/app/Console/Commands/ReinstallRolesAndPermissions.php b/app/Console/Commands/ReinstallRolesAndPermissions.php new file mode 100644 index 0000000..02ad3f9 --- /dev/null +++ b/app/Console/Commands/ReinstallRolesAndPermissions.php @@ -0,0 +1,83 @@ +roles as $role) { + if(!isset($oldUsersAndRoles[$role->name])) { + $oldUsersAndRoles[$role->name] = []; + } + $oldUsersAndRoles[$role->name][] = $user; + } + $user->syncRoles([]); + + } + foreach ($roles as $role) { + /** @var \Spatie\Permission\Models\Role $role */ + $role->syncPermissions([]); + } + + + DB::statement('SET FOREIGN_KEY_CHECKS=0;'); + Role::truncate(); + Permission::truncate(); + DB::statement('SET FOREIGN_KEY_CHECKS=1;'); + + $seeder = app(\RolesAndPermissionsSeeder::class); + $seeder->run(); + + + foreach ($oldUsersAndRoles as $role => $users) { + foreach ($users as $user) { + $user->assignRole($role); + } + } + + $this->info('Roles and permissions reinstalled'); + } +}