sintonia_webapp/database/seeders/RolesAndPermissionsSeeder.php

71 lines
2 KiB
PHP

<?php
namespace Database\Seeders;
use Illuminate\Database\Seeder;
use Spatie\Permission\Models\Permission;
use Spatie\Permission\Models\Role;
use Spatie\Permission\PermissionRegistrar;
class RolesAndPermissionsSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
// Reset cached roles and permissions
app()[PermissionRegistrar::class]->forgetCachedPermissions();
$permissions = [
'showSchedule.read',
'broadcastsSpots.manage',
'transmissions.manage',
'episode.manageOwn',
'episode.manageAll',
'playlist.manageOwn',
'playlist.manageAll',
'dynamicBlock.manageOwn',
'dynamicBlock.manageAll',
'file.manageOwn',
'file.manageAll',
'systemSettings.edit',
'users.manageOwn',
'users.manageAll',
'users.changeRole',
'users.delete',
];
foreach ($permissions as $permission) {
Permission::firstOrCreate(['name' => $permission]);
}
// Define Roles and Assign Permissions
$djRole = Role::firstOrCreate(['name' => 'dj', 'guard_name' => 'web']);
$djRole->givePermissionTo([
'showSchedule.read',
'episode.manageOwn',
'playlist.manageOwn',
'dynamicBlock.manageOwn',
'file.manageOwn',
]);
$editorRole = Role::firstOrCreate(['name' => 'editor', 'guard_name' => 'web']);
$editorRole->givePermissionTo([
'showSchedule.read',
'broadcastsSpots.manage',
'transmissions.manage',
'episode.manageAll',
'dynamicBlock.manageAll',
'playlist.manageAll',
'file.manageAll',
]);
$adminRole = Role::firstOrCreate(['name' => 'admin', 'guard_name' => 'web']);
$adminRole->givePermissionTo(Permission::all());
}
}