61 lines
1.7 KiB
PHP
61 lines
1.7 KiB
PHP
<?php
|
|
|
|
namespace Database\Seeders;
|
|
|
|
use Illuminate\Database\Seeder;
|
|
use Junges\ACL\Models\Group;
|
|
use Junges\ACL\Models\Permission;
|
|
|
|
class AclTableSeeder extends Seeder
|
|
{
|
|
protected array $groups = [];
|
|
|
|
/**
|
|
* Run the database seeds.
|
|
*
|
|
* @return void
|
|
*/
|
|
public function run()
|
|
{
|
|
$this->groupSeeder();
|
|
$this->permissionSeeder();
|
|
$this->assignPermissionsToGroups();
|
|
}
|
|
|
|
protected function groupSeeder(): void
|
|
{
|
|
$this->groups['personalia'] = Group::create(['name' => 'personalia']);
|
|
$this->groups['supervisor'] = Group::create(['name' => 'supervisor']);
|
|
$this->groups['staff'] = Group::create(['name' => 'staff']);
|
|
}
|
|
|
|
protected function permissionSeeder(): void
|
|
{
|
|
Permission::create(['name' => 'view-user']);
|
|
Permission::create(['name' => 'view-user.group']);
|
|
Permission::create(['name' => 'view-form']);
|
|
Permission::create(['name' => 'view-form.group']);
|
|
Permission::create(['name' => 'create-form']);
|
|
Permission::create(['name' => 'update-form']);
|
|
Permission::create(['name' => 'delete-form']);
|
|
Permission::create(['name' => 'create-row']);
|
|
Permission::create(['name' => 'update-row']);
|
|
// Permission::create(['name' => 'delete-row']);
|
|
}
|
|
|
|
protected function assignPermissionsToGroups(): void
|
|
{
|
|
$this->groups['personalia']->assignPermission([
|
|
'view-user', 'view-form', 'create-form', 'update-form', 'delete-form', 'update-row',
|
|
]);
|
|
|
|
$this->groups['supervisor']->assignPermission([
|
|
'view-user.group', 'view-form.group', 'update-row',
|
|
]);
|
|
|
|
$this->groups['staff']->assignPermission([
|
|
'create-row',
|
|
]);
|
|
}
|
|
}
|