Header Ads

Header ADS

Laravel Seller Seeder with role Permission

 

//SellerSeeder.php

<?php
namespace Database\Seeders;

use App\Models\User;
use Illuminate\Database\Seeder;
use Spatie\Permission\Models\Role;
use Illuminate\Database\Console\Seeds\WithoutModelEvents;

class SellerSeeder extends Seeder
{
    /**
     * Run the database seeds.
     */
    public function run()
    {
        // Create the 'store-owner' role if it doesn't exist
        $role = Role::firstOrCreate(['name' => 'store-owner']);

        // Create 10 seller users with the 'store-owner' role
        foreach (range(1, 10) as $index) {
            $user = User::create([
                'name' => "Store Owner $index",
                'email' => "storeowner$index@example.com",
                'password' => bcrypt('password'), // Set a default password or use Faker
            ]);

            // Assign the 'store-owner' role to the user
            $user->assignRole($role);
        }
    }
}



//RolePermissionSeeder.php code

<?php

namespace Database\Seeders;

use Illuminate\Database\Console\Seeds\WithoutModelEvents;
use Illuminate\Database\Seeder;
use Spatie\Permission\Models\Role;
use Spatie\Permission\Models\Permission;

class RolePermissionSeeder extends Seeder
{
    /**
     * Run the database seeds.
     */
    public function run(): void
    {
        // Define roles
        $roles = [
            'super-admin'=>[
                'super_access'
            ],
            'admin' => [
                // Dashboard and general permissions
                'view_dashboard',

                // User management permissions
                'edit_user',
                'delete_user',
                'create_user',

                // Vendor management permissions
                'view_vendor',
                'edit_vendor',
                'delete_vendor',
                'create_vendor',

                // Company management permissions
                'view_company',
                'edit_company',
                'delete_company',
                'create_company',

                // Product management permissions
                'view_product',
                'edit_product',
                'delete_product',
                'create_product',
            ],
            'user' => [
                // Dashboard and general permissions
                'view_dashboard',

                // Product-related permissions
                'view_product',
            ],
            'seller' => [
                // Dashboard and general permissions
                'view_dashboard',

                // Vendor-related permissions
                'view_vendor',
                'edit_vendor',
                'create_vendor',

                // Product-related permissions
                'view_product',
                'create_product',
            ],
        ];

        // Loop through each role
        foreach ($roles as $roleName => $rolePermissions) {
            // Check if the role already exists
            $role = Role::firstOrCreate(['name' => $roleName]);

            // Assign permissions to the role
            foreach ($rolePermissions as $permissionName) {
                $permission = Permission::firstOrCreate(['name' =>
$permissionName]);
                $role->givePermissionTo($permission);
            }
        }
    }
}


No comments

Theme images by fpm. Powered by Blogger.