cuti-waf/database/seeders/AclTableSeeder.php
2022-07-26 07:01:25 +07:00

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',
]);
}
}