Feuerwehr-eppingen/database/seeds/PermissionSeeder.php

89 lines
2.6 KiB
PHP
Executable File

<?php
use Illuminate\Database\Seeder;
use Spatie\Permission\Models\Role;
use Spatie\Permission\Models\Permission;
use App\Models\Tag;
class PermissionSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
$models = array(
'abteilung',
'instanz',
'einsatzart',
'dienstart',
'Mitgliedsart',
'fahrzeug',
'einsatz',
'veranstaltung',
'dienst',
'bericht',
'seitenkategorie',
'seite'
);
$adminPermission = $this->createPermission("Administrator");
$roleAdmin = new Role();
$roleAdmin->name = 'Administrator';
$roleAdmin->save();
$roleAdmin->givePermissionTo($adminPermission);
foreach($models as $model)
{
$permissionName = ucfirst($model);
$createPermissionName = $permissionName.' erstellen';
$editAllPermissionName = $permissionName.' bearbeiten (alle)';
$editOwnPermissionName = $permissionName.' bearbeiten (eigene)';
$deleteAllPermissionName= $permissionName.' entfernen (alle)';
$deleteOwnPermissionName= $permissionName.' entfernen (eigene)';
$createPermission = $this->createPermission($createPermissionName);
$editAllPermission = $this->createPermission($editAllPermissionName);
$editOwnPermission = $this->createPermission($editOwnPermissionName);
$deleteAllPermission = $this->createPermission($deleteAllPermissionName);
$deleteOwnPermission = $this->createPermission($deleteOwnPermissionName);
$roleAdmin = new Role();
$roleAdmin->name = $permissionName.' Administrator';
$roleAdmin->save();
$roleAdmin->givePermissionTo($createPermission);
$roleAdmin->givePermissionTo($editAllPermission);
$roleAdmin->givePermissionTo($editOwnPermission);
$roleAdmin->givePermissionTo($deleteAllPermission);
$roleAdmin->givePermissionTo($deleteOwnPermission);
$roleAdmin = new Role();
$roleAdmin->name = $permissionName.' Moderator';
$roleAdmin->save();
$roleAdmin->givePermissionTo($createPermission);
$roleAdmin->givePermissionTo($editAllPermission);
$roleAdmin->givePermissionTo($editOwnPermission);
$roleAdmin->givePermissionTo($deleteAllPermission);
$roleAdmin->givePermissionTo($deleteOwnPermission);
$roleAutor = new Role();
$roleAutor->name = $permissionName.' Autor';
$roleAutor->save();
$roleAutor->givePermissionTo($createPermission);
$roleAutor->givePermissionTo($editOwnPermission);
$roleAutor->givePermissionTo($deleteOwnPermission);
}
}
protected function createPermission($name)
{
$permission = new Permission();
$permission->name = $name;
$permission->save();
return $permission;
}
}