Skip to content

Instantly share code, notes, and snippets.

@Adizbek
Created December 11, 2021 12:24
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Adizbek/32f35db9e30d0a47e186830250b487e5 to your computer and use it in GitHub Desktop.
Save Adizbek/32f35db9e30d0a47e186830250b487e5 to your computer and use it in GitHub Desktop.
Template for permission seeding in Laravel using Spatie/Permission
<?php
namespace Database\Seeders;
use Illuminate\Database\Seeder;
use Spatie\Permission\Models\Permission;
use Spatie\Permission\Models\Role;
class PermissionSeeder extends Seeder
{
public function run()
{
$permissionManger = ['view-permissions', 'manage-permissions'];
$branchManager = ['view-branches', 'manage-branches'];
$pointManager = ['view-points', 'manage-points'];
$roles = [
'admin' => [
...$permissionManger,
...$branchManager,
...$pointManager,
],
'branch-manager' => [
...$branchManager,
...$pointManager,
],
'point-manager' => [
...$pointManager,
]
];
foreach ($roles as $roleName => $permissions) {
$role = Role::firstOrCreate(['name' => $roleName], ['name' => $roleName]);
foreach ($permissions as $permissionName) {
$permission = Permission::firstOrCreate(['name' => $permissionName], ['name' => $permissionName]);
$permission->assignRole($role);
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment