Skip to content

Instantly share code, notes, and snippets.

@HenriqueSilverio
Last active September 23, 2018 16:14
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 HenriqueSilverio/46ecf01377037b0fa539788580a4302e to your computer and use it in GitHub Desktop.
Save HenriqueSilverio/46ecf01377037b0fa539788580a4302e to your computer and use it in GitHub Desktop.
Laravel Roles and Capabilities seeder sample.
<?php
use App\Models\Role;
use App\Models\Capability;
use Illuminate\Database\Seeder;
class PermissionsSeeder extends Seeder
{
private $roles = [[
'slug' => 'administrator',
'label' => 'Administrador',
'capabilities' => [[
'slug' => 'manage-permissions',
'label' => 'Gerenciar Permissões',
],],
], [
'slug' => 'moderator',
'label' => 'Moderador',
'capabilities' => [],
], [
'slug' => 'manager',
'label' => 'Lojista',
'capabilities' => [],
], [
'slug' => 'editor',
'label' => 'Gerente',
'capabilities' => [],
], [
'slug' => 'customer',
'label' => 'Cliente',
'capabilities' => [],
],];
public function run()
{
foreach ($this->roles as $roleData) {
$role = Role::create([
'slug' => $roleData['slug'],
'label' => $roleData['label'],
]);
foreach ($roleData['capabilities'] as $capabilityData) {
$capability = Capability::create([
'slug' => $capabilityData['slug'],
'label' => $capabilityData['label'],
]);
$role->capabilities()->attach($capability->id);
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment