Created
December 11, 2021 12:24
-
-
Save Adizbek/32f35db9e30d0a47e186830250b487e5 to your computer and use it in GitHub Desktop.
Template for permission seeding in Laravel using Spatie/Permission
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?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