create created model event and adding role and permission seeder

This commit is contained in:
Geriano
2022-07-16 03:01:48 +07:00
parent c712265078
commit 3eccbcb7d7
2 changed files with 31 additions and 1 deletions

View File

@@ -6,5 +6,17 @@ use Spatie\Permission\Models\Permission as Model;
class Permission extends Model
{
//
/**
* @inheritdoc
*/
public static function boot()
{
parent::boot();
static::created(function (Permission $permission) {
if ($role = Role::where('name', 'superuser')->first()) {
$role->permissions()->attach([$permission->id]);
}
});
}
}

View File

@@ -2,6 +2,8 @@
namespace Database\Seeders;
use App\Models\Permission;
use App\Models\Role;
use App\Models\User;
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
use Illuminate\Database\Seeder;
@@ -35,5 +37,21 @@ class InitialSeeder extends Seeder
$user->email_verified_at = now();
$user->save();
Role::create([
'name' => 'superuser',
'guard_name' => 'web',
]);
$su->assignRole('superuser');
collect(['user', 'permission', 'role', 'menu'])->each(function ($name) {
collect(['create', 'read', 'update', 'delete'])->each(function ($ability) use ($name) {
Permission::create([
'name' => sprintf('%s %s', $ability, $name),
'guard_name' => 'web',
]);
});
});
}
}