89 lines
2.6 KiB
PHP
Executable File
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;
|
|
}
|
|
}
|