changes
This commit is contained in:
@ -0,0 +1,138 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*/
|
||||
public function up(): void
|
||||
{
|
||||
$teams = config('permission.teams');
|
||||
$tableNames = config('permission.table_names');
|
||||
$columnNames = config('permission.column_names');
|
||||
$pivotRole = $columnNames['role_pivot_key'] ?? 'role_id';
|
||||
$pivotPermission = $columnNames['permission_pivot_key'] ?? 'permission_id';
|
||||
|
||||
if (empty($tableNames)) {
|
||||
throw new \Exception('Error: config/permission.php not loaded. Run [php artisan config:clear] and try again.');
|
||||
}
|
||||
if ($teams && empty($columnNames['team_foreign_key'] ?? null)) {
|
||||
throw new \Exception('Error: team_foreign_key on config/permission.php not loaded. Run [php artisan config:clear] and try again.');
|
||||
}
|
||||
|
||||
Schema::create($tableNames['permissions'], function (Blueprint $table) {
|
||||
$table->bigIncrements('id'); // permission id
|
||||
$table->string('name'); // For MySQL 8.0 use string('name', 125);
|
||||
$table->string('guard_name'); // For MySQL 8.0 use string('guard_name', 125);
|
||||
$table->timestamps();
|
||||
|
||||
$table->unique(['name', 'guard_name']);
|
||||
});
|
||||
|
||||
Schema::create($tableNames['roles'], function (Blueprint $table) use ($teams, $columnNames) {
|
||||
$table->bigIncrements('id'); // role id
|
||||
if ($teams || config('permission.testing')) { // permission.testing is a fix for sqlite testing
|
||||
$table->unsignedBigInteger($columnNames['team_foreign_key'])->nullable();
|
||||
$table->index($columnNames['team_foreign_key'], 'roles_team_foreign_key_index');
|
||||
}
|
||||
$table->string('name'); // For MySQL 8.0 use string('name', 125);
|
||||
$table->string('guard_name'); // For MySQL 8.0 use string('guard_name', 125);
|
||||
$table->timestamps();
|
||||
if ($teams || config('permission.testing')) {
|
||||
$table->unique([$columnNames['team_foreign_key'], 'name', 'guard_name']);
|
||||
} else {
|
||||
$table->unique(['name', 'guard_name']);
|
||||
}
|
||||
});
|
||||
|
||||
Schema::create($tableNames['model_has_permissions'], function (Blueprint $table) use ($tableNames, $columnNames, $pivotPermission, $teams) {
|
||||
$table->unsignedBigInteger($pivotPermission);
|
||||
|
||||
$table->string('model_type');
|
||||
$table->unsignedBigInteger($columnNames['model_morph_key']);
|
||||
$table->index([$columnNames['model_morph_key'], 'model_type'], 'model_has_permissions_model_id_model_type_index');
|
||||
|
||||
$table->foreign($pivotPermission)
|
||||
->references('id') // permission id
|
||||
->on($tableNames['permissions'])
|
||||
->onDelete('cascade');
|
||||
if ($teams) {
|
||||
$table->unsignedBigInteger($columnNames['team_foreign_key']);
|
||||
$table->index($columnNames['team_foreign_key'], 'model_has_permissions_team_foreign_key_index');
|
||||
|
||||
$table->primary([$columnNames['team_foreign_key'], $pivotPermission, $columnNames['model_morph_key'], 'model_type'],
|
||||
'model_has_permissions_permission_model_type_primary');
|
||||
} else {
|
||||
$table->primary([$pivotPermission, $columnNames['model_morph_key'], 'model_type'],
|
||||
'model_has_permissions_permission_model_type_primary');
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
Schema::create($tableNames['model_has_roles'], function (Blueprint $table) use ($tableNames, $columnNames, $pivotRole, $teams) {
|
||||
$table->unsignedBigInteger($pivotRole);
|
||||
|
||||
$table->string('model_type');
|
||||
$table->unsignedBigInteger($columnNames['model_morph_key']);
|
||||
$table->index([$columnNames['model_morph_key'], 'model_type'], 'model_has_roles_model_id_model_type_index');
|
||||
|
||||
$table->foreign($pivotRole)
|
||||
->references('id') // role id
|
||||
->on($tableNames['roles'])
|
||||
->onDelete('cascade');
|
||||
if ($teams) {
|
||||
$table->unsignedBigInteger($columnNames['team_foreign_key']);
|
||||
$table->index($columnNames['team_foreign_key'], 'model_has_roles_team_foreign_key_index');
|
||||
|
||||
$table->primary([$columnNames['team_foreign_key'], $pivotRole, $columnNames['model_morph_key'], 'model_type'],
|
||||
'model_has_roles_role_model_type_primary');
|
||||
} else {
|
||||
$table->primary([$pivotRole, $columnNames['model_morph_key'], 'model_type'],
|
||||
'model_has_roles_role_model_type_primary');
|
||||
}
|
||||
});
|
||||
|
||||
Schema::create($tableNames['role_has_permissions'], function (Blueprint $table) use ($tableNames, $pivotRole, $pivotPermission) {
|
||||
$table->unsignedBigInteger($pivotPermission);
|
||||
$table->unsignedBigInteger($pivotRole);
|
||||
|
||||
$table->foreign($pivotPermission)
|
||||
->references('id') // permission id
|
||||
->on($tableNames['permissions'])
|
||||
->onDelete('cascade');
|
||||
|
||||
$table->foreign($pivotRole)
|
||||
->references('id') // role id
|
||||
->on($tableNames['roles'])
|
||||
->onDelete('cascade');
|
||||
|
||||
$table->primary([$pivotPermission, $pivotRole], 'role_has_permissions_permission_id_role_id_primary');
|
||||
});
|
||||
|
||||
app('cache')
|
||||
->store(config('permission.cache.store') != 'default' ? config('permission.cache.store') : null)
|
||||
->forget(config('permission.cache.key'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*/
|
||||
public function down(): void
|
||||
{
|
||||
$tableNames = config('permission.table_names');
|
||||
|
||||
if (empty($tableNames)) {
|
||||
throw new \Exception('Error: config/permission.php not found and defaults could not be merged. Please publish the package configuration before proceeding, or drop the tables manually.');
|
||||
}
|
||||
|
||||
Schema::drop($tableNames['role_has_permissions']);
|
||||
Schema::drop($tableNames['model_has_roles']);
|
||||
Schema::drop($tableNames['model_has_permissions']);
|
||||
Schema::drop($tableNames['roles']);
|
||||
Schema::drop($tableNames['permissions']);
|
||||
}
|
||||
};
|
220
database/seeders/AdsCategorySeeder.php
Normal file
220
database/seeders/AdsCategorySeeder.php
Normal file
@ -0,0 +1,220 @@
|
||||
<?php
|
||||
|
||||
namespace Database\Seeders;
|
||||
|
||||
use App\Models\Adcategories;
|
||||
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
|
||||
use Illuminate\Database\Seeder;
|
||||
|
||||
class AdsCategorySeeder extends Seeder
|
||||
{
|
||||
/**
|
||||
* Run the database seeds.
|
||||
*/
|
||||
public function run(): void
|
||||
{
|
||||
Adcategories::create([
|
||||
'category_id' => 1,
|
||||
'title' => 'navbar',
|
||||
'alias' => 'navbar',
|
||||
'status' => 1,
|
||||
'display_order' => 1,
|
||||
'createdBy' => 1,
|
||||
'updatedBy' => 1,
|
||||
'created_at' => now(),
|
||||
'updated_at' => now()
|
||||
]);
|
||||
|
||||
Adcategories::create([
|
||||
'category_id' => 2,
|
||||
'title' => 'header',
|
||||
'alias' => 'header',
|
||||
'status' => 1,
|
||||
'display_order' => 2,
|
||||
'createdBy' => 1,
|
||||
'updatedBy' => 1,
|
||||
'created_at' => now(),
|
||||
'updated_at' => now()
|
||||
]);
|
||||
|
||||
Adcategories::create([
|
||||
'category_id' => 3,
|
||||
'title' => 'feature-news',
|
||||
'alias' => 'feature-news',
|
||||
'status' => 1,
|
||||
'display_order' => 3,
|
||||
'createdBy' => 1,
|
||||
'updatedBy' => 1,
|
||||
'created_at' => now(),
|
||||
'updated_at' => now()
|
||||
]);
|
||||
|
||||
Adcategories::create([
|
||||
'category_id' => 4,
|
||||
'title' => 'province',
|
||||
'alias' => 'province',
|
||||
'status' => 1,
|
||||
'display_order' => 4,
|
||||
'createdBy' => 1,
|
||||
'updatedBy' => 1,
|
||||
'created_at' => now(),
|
||||
'updated_at' => now()
|
||||
]);
|
||||
|
||||
Adcategories::create([
|
||||
'category_id' => 5,
|
||||
'title' => 'int-sidebar',
|
||||
'alias' => 'int-sidebar',
|
||||
'status' => 1,
|
||||
'display_order' => 5,
|
||||
'createdBy' => 1,
|
||||
'updatedBy' => 1,
|
||||
'created_at' => now(),
|
||||
'updated_at' => now()
|
||||
]);
|
||||
Adcategories::create([
|
||||
'category_id' => 6,
|
||||
'title' => 'politics',
|
||||
'alias' => 'politics',
|
||||
'status' => 1,
|
||||
'display_order' => 6,
|
||||
'createdBy' => 1,
|
||||
'updatedBy' => 1,
|
||||
'created_at' => now(),
|
||||
'updated_at' => now()
|
||||
]);
|
||||
|
||||
Adcategories::create([
|
||||
'category_id' => 7,
|
||||
'title' => 'politics-sidebar',
|
||||
'alias' => 'politics-sidebar',
|
||||
'status' => 1,
|
||||
'display_order' => 7,
|
||||
'createdBy' => 1,
|
||||
'updatedBy' => 1,
|
||||
'created_at' => now(),
|
||||
'updated_at' => now()
|
||||
]);
|
||||
|
||||
Adcategories::create([
|
||||
'category_id' => 8,
|
||||
'title' => 'economics',
|
||||
'alias' => 'economics',
|
||||
'status' => 1,
|
||||
'display_order' => 8,
|
||||
'createdBy' => 1,
|
||||
'updatedBy' => 1,
|
||||
'created_at' => now(),
|
||||
'updated_at' => now()
|
||||
]);
|
||||
|
||||
Adcategories::create([
|
||||
'category_id' => 9,
|
||||
'title' => 'economics-sidebar',
|
||||
'alias' => 'economics-sidebar',
|
||||
'status' => 1,
|
||||
'display_order' => 9,
|
||||
'createdBy' => 1,
|
||||
'updatedBy' => 1,
|
||||
'created_at' => now(),
|
||||
'updated_at' => now()
|
||||
]);
|
||||
|
||||
Adcategories::create([
|
||||
'category_id' => 10,
|
||||
'title' => 'cul-tech',
|
||||
'alias' => 'cul-tech',
|
||||
'status' => 1,
|
||||
'display_order' => 10,
|
||||
'createdBy' => 1,
|
||||
'updatedBy' => 1,
|
||||
'created_at' => now(),
|
||||
'updated_at' => now()
|
||||
]);
|
||||
|
||||
Adcategories::create([
|
||||
'category_id' => 11,
|
||||
'title' => 'cul-tech-sidebar',
|
||||
'alias' => 'cul-tech-sidebar',
|
||||
'status' => 1,
|
||||
'display_order' => 11,
|
||||
'createdBy' => 1,
|
||||
'updatedBy' => 1,
|
||||
'created_at' => now(),
|
||||
'updated_at' => now()
|
||||
]);
|
||||
|
||||
Adcategories::create([
|
||||
'category_id' => 12,
|
||||
'title' => 'feature',
|
||||
'alias' => 'feature',
|
||||
'status' => 1,
|
||||
'display_order' => 12,
|
||||
'createdBy' => 1,
|
||||
'updatedBy' => 1,
|
||||
'created_at' => now(),
|
||||
'updated_at' => now()
|
||||
]);
|
||||
|
||||
Adcategories::create([
|
||||
'category_id' => 13,
|
||||
'title' => 'feature-sidebar',
|
||||
'alias' => 'feature-sidebar',
|
||||
'status' => 1,
|
||||
'display_order' => 13,
|
||||
'createdBy' => 1,
|
||||
'updatedBy' => 1,
|
||||
'created_at' => now(),
|
||||
'updated_at' => now()
|
||||
]);
|
||||
|
||||
Adcategories::create([
|
||||
'category_id' => 14,
|
||||
'title' => 'video',
|
||||
'alias' => 'video',
|
||||
'status' => 1,
|
||||
'display_order' => 14,
|
||||
'createdBy' => 1,
|
||||
'updatedBy' => 1,
|
||||
'created_at' => now(),
|
||||
'updated_at' => now()
|
||||
]);
|
||||
|
||||
Adcategories::create([
|
||||
'category_id' => 15,
|
||||
'title' => 'health',
|
||||
'alias' => 'health',
|
||||
'status' => 1,
|
||||
'display_order' => 15,
|
||||
'createdBy' => 1,
|
||||
'updatedBy' => 1,
|
||||
'created_at' => now(),
|
||||
'updated_at' => now()
|
||||
]);
|
||||
|
||||
Adcategories::create([
|
||||
'category_id' => 16,
|
||||
'title' => 'inner-page-bottom',
|
||||
'alias' => 'inner-page-bottom',
|
||||
'status' => 1,
|
||||
'display_order' => 16,
|
||||
'createdBy' => 1,
|
||||
'updatedBy' => 1,
|
||||
'created_at' => now(),
|
||||
'updated_at' => now()
|
||||
]);
|
||||
|
||||
|
||||
Adcategories::create([
|
||||
'category_id' => 17,
|
||||
'title' => 'inner-page-header',
|
||||
'alias' => 'inner-page-header',
|
||||
'status' => 1,
|
||||
'display_order' => 17,
|
||||
'createdBy' => 1,
|
||||
'updatedBy' => 1,
|
||||
'created_at' => now(),
|
||||
'updated_at' => now()
|
||||
]);
|
||||
}
|
||||
}
|
@ -12,11 +12,13 @@ class DatabaseSeeder extends Seeder
|
||||
*/
|
||||
public function run(): void
|
||||
{
|
||||
$this->call(RoleSeeder::class);
|
||||
$this->call(UserSeeder::class);
|
||||
$this->call(ProvinceSeeder::class);
|
||||
$this->call(NewsTypeSeeder::class);
|
||||
$this->call(NewsCategorySeeder::class);
|
||||
$this->call(HoroscopeSeeder::class);
|
||||
$this->call(WebsiteSettingSeeder::class);
|
||||
$this->call(AdsCategorySeeder::class);
|
||||
}
|
||||
}
|
||||
|
20
database/seeders/RoleSeeder.php
Normal file
20
database/seeders/RoleSeeder.php
Normal file
@ -0,0 +1,20 @@
|
||||
<?php
|
||||
|
||||
namespace Database\Seeders;
|
||||
|
||||
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
|
||||
use Illuminate\Database\Seeder;
|
||||
use Spatie\Permission\Models\Role;
|
||||
|
||||
class RoleSeeder extends Seeder
|
||||
{
|
||||
/**
|
||||
* Run the database seeds.
|
||||
*/
|
||||
public function run(): void
|
||||
{
|
||||
$role = Role::create(['name' => 'admin']);
|
||||
$role = Role::create(['name' => 'editor']);
|
||||
$role = Role::create(['name' => 'user']);
|
||||
}
|
||||
}
|
@ -17,10 +17,9 @@ class UserSeeder extends Seeder
|
||||
'name' => 'Prajwal Adhikari',
|
||||
'email' => 'prajwalbro@hotmail.com',
|
||||
'username' => 'prajwalbro',
|
||||
'password' => '$2y$10$3zlF9VeXexzWKRDPZuDio.W7RZIC3tU.cjwMoLzG8ki8bVwAQn1WW',
|
||||
'password' => bcrypt('p@ssw0rd'),
|
||||
'status' => 1,
|
||||
'role' => 'super_admin'
|
||||
|
||||
]);
|
||||
'email_verified_at' => now(),
|
||||
])->assignRole('admin', 'editor');
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user