Current File : /home/getxxhzo/app.genicards.com/database/seeders/DefaultRoleSeeder.php |
<?php
namespace Database\Seeders;
use App\Models\Permission;
use App\Models\Role as CustomRole;
use App\Models\User;
use Illuminate\Database\Seeder;
use Spatie\Permission\Models\Role;
class DefaultRoleSeeder extends Seeder
{
/**
* Run the database seeds.
*/
public function run(): void
{
$roles = [
[
'name' => CustomRole::ROLE_SUPER_ADMIN,
'display_name' => 'Super Admin',
'is_default' => true,
],
[
'name' => CustomRole::ROLE_ADMIN,
'display_name' => 'Admin',
'is_default' => true,
],
[
'name' => CustomRole::ROLE_USER,
'display_name' => 'User',
'is_default' => true,
],
];
foreach ($roles as $role) {
$role = Role::create($role);
}
/** @var Role $superAdminRole */
$superAdminRole = Role::whereName(CustomRole::ROLE_SUPER_ADMIN)->first();
/** @var Role $adminRole */
$adminRole = Role::whereName(CustomRole::ROLE_ADMIN)->first();
/** @var User $user */
$superAdminUser = User::whereEmail('sadmin@vcard.com')->first();
$adminUser = User::whereEmail('admin@vcard.com')->first();
$superAdminPermission = Permission::pluck('name', 'id');
$adminPermission = Permission::whereIn('name',
['manage_vcards'])->pluck('name', 'id');
$superAdminRole->givePermissionTo($superAdminPermission);
$adminRole->givePermissionTo($adminPermission);
if ($superAdminUser) {
$superAdminUser->assignRole($superAdminRole);
}
if ($adminUser) {
$adminUser->assignRole($adminRole);
}
}
}