From 563506490d44965cfd5ef730ccaa0496fae3e7dc Mon Sep 17 00:00:00 2001 From: "daeng.deni@dharma.or.id" Date: Tue, 6 Jun 2023 22:12:41 +0700 Subject: [PATCH] Update Usermanager Seeder --- .../Seeders/UserManagerDatabaseSeeder.php | 49 ++++++++++++++++++- 1 file changed, 48 insertions(+), 1 deletion(-) diff --git a/Database/Seeders/UserManagerDatabaseSeeder.php b/Database/Seeders/UserManagerDatabaseSeeder.php index 83701ab..8592bf9 100644 --- a/Database/Seeders/UserManagerDatabaseSeeder.php +++ b/Database/Seeders/UserManagerDatabaseSeeder.php @@ -4,6 +4,10 @@ use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Seeder; + use Modules\Usermanager\Entities\PermissionGroup; + use Spatie\Permission\Models\Permission; + use Spatie\Permission\Models\Role; + use Spatie\Permission\PermissionRegistrar; class UserManagerDatabaseSeeder extends Seeder { @@ -14,7 +18,18 @@ */ public function run() { - Model::unguard(); + app()[PermissionRegistrar::class]->forgetCachedPermissions(); + + $data = $this->data(); + foreach ($data as $value) { + $permission = Permission::create([ + 'name' => $value['name'], + 'permission_group_id' => $value['group'], + ]); + + $role = Role::find(1); + $role->givePermissionTo($permission); + } $this->call([ PermissionGroupSeeder::class, @@ -23,4 +38,36 @@ UsersSeeder::class ]); } + + public function data() + { + $data = []; + // list of model permission + $model = ['user']; + + $permissionGroup = PermissionGroup::create([ + 'name' => 'user' + ]); + + foreach ($model as $value) { + foreach ($this->crudActions($value) as $action) { + $data[] = ['name' => $action, 'group' => $permissionGroup->id]; + } + } + + return $data; + } + + public function crudActions($name) + { + $actions = []; + // list of permission actions + $crud = ['create', 'read', 'update', 'delete']; + + foreach ($crud as $value) { + $actions[] = $name . '.' . $value; + } + + return $actions; + } }