Added roles and permissions in seeder

This commit is contained in:
dhanabalan
2025-04-23 14:47:11 +05:30
parent 26c3fee797
commit 488cfa3b61
4 changed files with 147 additions and 28 deletions

View File

@@ -14,5 +14,6 @@ class DatabaseSeeder extends Seeder
{ {
$this->call(RoleSeeder::class); $this->call(RoleSeeder::class);
$this->call(UserSeeder::class); $this->call(UserSeeder::class);
$this->call(PermissionSeeder::class);
} }
} }

View File

@@ -0,0 +1,40 @@
<?php
namespace Database\Seeders;
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
use Illuminate\Database\Seeder;
use Spatie\Permission\Models\Permission;
class PermissionSeeder extends Seeder
{
/**
* Run the database seeds.
*/
public function run(): void
{
$permissions = [
'view permissions',
'create permissions',
'edit permissions',
'delete permissions',
'restore permissions',
'force-delete permissions',
// Add role permissions if needed
'view roles',
'create roles',
'edit roles',
'delete roles',
'restore roles',
'force-delete roles'
];
foreach ($permissions as $permission) {
Permission::updateOrCreate(['name' => $permission]); //firstOrCreate
}
Permission::updateOrCreate(['name' => 'view production dashboard']);
Permission::updateOrCreate(['name' => 'view invoice dashboard']);
}
}

View File

@@ -2,6 +2,7 @@
namespace Database\Seeders; namespace Database\Seeders;
use App\Models\User;
use Illuminate\Database\Seeder; use Illuminate\Database\Seeder;
use Spatie\Permission\Models\Role; use Spatie\Permission\Models\Role;
@@ -12,9 +13,25 @@ class RoleSeeder extends Seeder
*/ */
public function run(): void public function run(): void
{ {
Role::create([ Role::updateOrCreate([
'name' => 'Super Admin', 'name' => 'Super Admin',
'guard_name' => 'web', 'guard_name' => 'web',
]); ]);
// // newly added role
// $role_admin = Role::create([
// 'name' => 'admin',
// 'guard_name' => 'web',
// ]);
// $permission_manage_users = Permission::firstOrCreate([
// 'name' => 'manage users',
// 'guard_name' => 'web',
// ]);
// $role_admin->givePermissionTo($permission_manage_users);
// $user = User::find(10);
// $user->assignRole($role_admin);
} }
} }

View File

@@ -3,6 +3,7 @@
namespace Database\Seeders; namespace Database\Seeders;
use App\Models\User; use App\Models\User;
use Hash;
use Illuminate\Database\Seeder; use Illuminate\Database\Seeder;
class UserSeeder extends Seeder class UserSeeder extends Seeder
@@ -12,41 +13,101 @@ class UserSeeder extends Seeder
*/ */
public function run(): void public function run(): void
{ {
$user1 = User::create([ //updateOrCreate
'name' => 'Admin', $user1 = User::updateOrCreate(
'email' => 'admin@cripumps.com', // Unique identifier
'password' => bcrypt('admin'), ['email' => 'admin@cripumps.com'],
]);
// Data to update/create
[
'name' => 'Admin',
'password' => Hash::make('admin'),
'updated_at' => now(),
'created_at' => now()
]
);
// $user1 = User::firstOrCreate([
// 'name' => 'Admin',
// 'email' => 'admin@cripumps.com',
// 'password' => bcrypt('admin'),
// ]);
$user1->assignRole('Super Admin'); $user1->assignRole('Super Admin');
$user2 = User::create([ $user2 = User::updateOrCreate(
'name' => 'Jothi', // Unique identifier
'email' => 'jothi@cripumps.com', ['email' => 'jothi@cripumps.com'],
'password' => bcrypt('jothi@123'),
]); // Data to update/create
[
'name' => 'Jothi',
'password' => bcrypt('jothi@123'),
'updated_at' => now(),
'created_at' => now()
]
);
// $user2 = User::firstOrCreate([
// 'name' => 'Jothi',
// 'email' => 'jothi@cripumps.com',
// 'password' => bcrypt('jothi@123'),
// ]);
$user2->assignRole('Super Admin'); $user2->assignRole('Super Admin');
$user3 = User::create([ $user3 = User::updateOrCreate(
'name' => 'Dhana', // Unique identifier
'email' => 'dhana@cripumps.com', ['email' => 'dhana@cripumps.com'],
'password' => bcrypt('dhana@123'),
]); // Data to update/create
[
'name' => 'Dhana',
'password' => bcrypt('dhana@123'),
'updated_at' => now(),
'created_at' => now()
]
);
// $user3 = User::firstOrCreate([
// 'name' => 'Dhana',
// 'email' => 'dhana@cripumps.com',
// 'password' => bcrypt('dhana@123'),
// ]);
$user3->assignRole('Super Admin'); $user3->assignRole('Super Admin');
$user4 = User::create([ $user4 = User::updateOrCreate(
'name' => 'Ranjith', // Unique identifier
'email' => 'ranjith@cripumps.com', ['email' => 'ranjith@cripumps.com'],
'password' => bcrypt('ranjith@123'),
]); // Data to update/create
[
'name' => 'Ranjith',
'password' => bcrypt('ranjith@123'),
'updated_at' => now(),
'created_at' => now()
]
);
// $user4 = User::firstOrCreate([
// 'name' => 'Ranjith',
// 'email' => 'ranjith@cripumps.com',
// 'password' => bcrypt('ranjith@123'),
// ]);
$user4->assignRole('Super Admin'); $user4->assignRole('Super Admin');
$user5 = User::create([ $user5 = User::updateOrCreate(
'name' => 'Srimathi', // Unique identifier
'email' => 'srimathi@cripumps.com', ['email' => 'srimathi@cripumps.com'],
'password' => bcrypt('srimathi@123'),
]);
$user5->assignRole('Super Admin');
User::factory()->count(5)->create(); // Data to update/create
[
'name' => 'Srimathi',
'password' => bcrypt('srimathi@123'),
'updated_at' => now(),
'created_at' => now()
]
);
// $user5 = User::firstOrCreate([
// 'name' => 'Srimathi',
// 'email' => 'srimathi@cripumps.com',
// 'password' => bcrypt('srimathi@123'),
// ]);
$user5->assignRole('Super Admin');
// User::factory()->count(5)->create();
} }
} }