From acbc178c416f4033e9035f670489296971af484d Mon Sep 17 00:00:00 2001 From: kroutony Date: Sat, 22 Feb 2020 21:44:38 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8A=A0=E5=85=A5=E9=87=8D=E6=96=B0=E5=AE=89?= =?UTF-8?q?=E8=A3=9Drole=E8=88=87permission=E7=9A=84artisan=E6=8C=87?= =?UTF-8?q?=E4=BB=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Commands/ReinstallRolesAndPermissions.php | 83 +++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 app/Console/Commands/ReinstallRolesAndPermissions.php 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'); + } +}