first init
This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
<?php
|
||||
|
||||
namespace Database\Seeders;
|
||||
|
||||
// use App\Models\User;
|
||||
// use Illuminate\Database\Console\Seeds\WithoutModelEvents;
|
||||
use Illuminate\Database\Seeder;
|
||||
|
||||
class DatabaseSeeder extends Seeder
|
||||
{
|
||||
/**
|
||||
* Seed the application's database.
|
||||
*/
|
||||
public function run(): void
|
||||
{
|
||||
// User::factory(10)->create();
|
||||
|
||||
// User::factory()->create([
|
||||
// 'name' => 'Test User',
|
||||
// 'email' => 'test@example.com',
|
||||
// ]);
|
||||
$needsSeeder = [
|
||||
PermissionsSeeder::class,
|
||||
RolesSeeder::class,
|
||||
RoleHasPermissionsSeeder::class,
|
||||
UserSeeder::class,
|
||||
];
|
||||
$this->call($needsSeeder);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
<?php
|
||||
|
||||
namespace Database\Seeders;
|
||||
|
||||
use Illuminate\Database\Seeder;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Support\Str;
|
||||
|
||||
class PermissionsSeeder extends Seeder
|
||||
{
|
||||
public function run()
|
||||
{
|
||||
$json = file_get_contents(database_path('seeders/json/permissions_20251014.json'));
|
||||
$data = json_decode($json, true);
|
||||
|
||||
foreach ($data['permissions'] as $permission) {
|
||||
DB::table('permissions')->insert(
|
||||
[
|
||||
'id' => Str::uuid(),
|
||||
'name' => $permission['name'],
|
||||
'guard_name' => $permission['guard_name'],
|
||||
'created_at' => $permission['created_at'],
|
||||
'updated_at' => $permission['updated_at'],
|
||||
'route_name' => $permission['route_name'],
|
||||
],
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
<?php
|
||||
|
||||
namespace Database\Seeders;
|
||||
|
||||
use Illuminate\Database\Seeder;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use RuntimeException;
|
||||
|
||||
class RoleHasPermissionsSeeder extends Seeder
|
||||
{
|
||||
public function run(): void
|
||||
{
|
||||
$json = file_get_contents(database_path('seeders/json/role_has_permissions_20251014.json'));
|
||||
$data = json_decode($json, true);
|
||||
|
||||
foreach ($data['role_has_permissions'] as $item) {
|
||||
$guardName = $item['guard_name'] ?? 'api';
|
||||
|
||||
$permission = DB::table('permissions')
|
||||
->where('name', $item['permission_name'])
|
||||
->where('guard_name', $guardName)
|
||||
->first();
|
||||
|
||||
$role = DB::table('roles')
|
||||
->where('name', $item['role_name'])
|
||||
->where('guard_name', $guardName)
|
||||
->first();
|
||||
|
||||
DB::table('role_has_permissions')->insert([
|
||||
'permission_id' => $permission->id,
|
||||
'role_id' => $role->id,
|
||||
]);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
<?php
|
||||
|
||||
namespace Database\Seeders;
|
||||
|
||||
use Illuminate\Database\Seeder;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Support\Str;
|
||||
|
||||
class RolesSeeder extends Seeder
|
||||
{
|
||||
public function run()
|
||||
{
|
||||
$json = file_get_contents(database_path('seeders/json/roles_20251014.json'));
|
||||
$data = json_decode($json, true);
|
||||
|
||||
foreach ($data['roles'] as $role) {
|
||||
DB::table('roles')->insert(
|
||||
[
|
||||
'id' => Str::uuid(),
|
||||
'name' => $role['name'],
|
||||
'guard_name' => $role['guard_name'],
|
||||
'created_at' => $role['created_at'],
|
||||
'updated_at' => $role['updated_at'],
|
||||
'fullname' => $role['fullname'],
|
||||
]
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
<?php
|
||||
|
||||
namespace Database\Seeders;
|
||||
|
||||
use Illuminate\Database\Seeder;
|
||||
use Modules\Auth\Entities\User;
|
||||
use Modules\Role\Entities\Role;
|
||||
|
||||
class UserSeeder extends Seeder
|
||||
{
|
||||
public function run(): void
|
||||
{
|
||||
$user = User::updateOrCreate(
|
||||
['email' => 'ismail@developer.com'],
|
||||
[
|
||||
'name' => 'DEVELOPER',
|
||||
'phone_number' => '0123456789',
|
||||
'password' => bcrypt('Topazthegoat'),
|
||||
'status' => 'active',
|
||||
]
|
||||
);
|
||||
|
||||
// Find the DEVELOPER role
|
||||
$developerRole = Role::findByName('DEVELOPER', 'api');
|
||||
|
||||
if (! $user->hasRole('DEVELOPER')) {
|
||||
$user->assignRole($developerRole);
|
||||
$this->command->info('DEVELOPER role assigned to user: '.$user->email);
|
||||
} else {
|
||||
$this->command->info('User already has DEVELOPER role: '.$user->email);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
<?php
|
||||
|
||||
namespace Database\Seeders;
|
||||
|
||||
use Illuminate\Database\Seeder;
|
||||
use Spatie\Permission\Models\Permission;
|
||||
|
||||
class VisibilityPermissionsSeeder extends Seeder
|
||||
{
|
||||
/**
|
||||
* Run the database seeds.
|
||||
*/
|
||||
public function run(): void
|
||||
{
|
||||
$permissions = [
|
||||
[
|
||||
'name' => 'akses peringkat formasi',
|
||||
'guard_name' => 'api',
|
||||
'description' => 'Can view all data under their government level'
|
||||
],
|
||||
[
|
||||
'name' => 'akses peringkat divisyen',
|
||||
'guard_name' => 'api',
|
||||
'description' => 'Can view all data under their formation (DIV) level'
|
||||
]
|
||||
];
|
||||
|
||||
foreach ($permissions as $permission) {
|
||||
Permission::firstOrCreate(
|
||||
['name' => $permission['name'], 'guard_name' => $permission['guard_name']],
|
||||
$permission
|
||||
);
|
||||
}
|
||||
|
||||
$this->command->info('Visibility permissions created successfully!');
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"permissions": [
|
||||
{
|
||||
"name": "DEVELOPER",
|
||||
"guard_name": "api",
|
||||
"created_at": "2025-07-13T00:03:02.000Z",
|
||||
"updated_at": "2025-07-13T00:03:02.000Z",
|
||||
"route_name": "superadminRoutes"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"role_has_permissions": [
|
||||
{
|
||||
"role_name": "DEVELOPER",
|
||||
"permission_name": "DEVELOPER",
|
||||
"guard_name": "api"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"roles": [
|
||||
{
|
||||
"name": "DEVELOPER",
|
||||
"guard_name": "api",
|
||||
"created_at": "2025-06-21T22:49:54.000Z",
|
||||
"updated_at": "2025-07-22T05:38:08.000Z",
|
||||
"deleted_at": null,
|
||||
"fullname": null
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user