194 lines
8.5 KiB
PHP
194 lines
8.5 KiB
PHP
<?php
|
|
|
|
use Illuminate\Support\Facades\Route;
|
|
use App\Components\Admin\Http\Controllers\UsersController;
|
|
use App\Components\Admin\Http\Controllers\RolesController;
|
|
use App\Components\Admin\Http\Controllers\PermissionsController;
|
|
use App\Components\Admin\Http\Controllers\ResourceTypesController;
|
|
use App\Components\Admin\Http\Controllers\ResourceTypeMappingsController;
|
|
use App\Components\Admin\Http\Controllers\WebPagesController;
|
|
use App\Components\Admin\Http\Controllers\MenuTypesController;
|
|
use App\Components\Admin\Http\Controllers\NavigationItemsController;
|
|
use App\Components\Admin\Http\Controllers\AdminDashboardController;
|
|
use App\Components\Admin\Http\Controllers\UserRolesController;
|
|
use App\Components\Admin\Http\Controllers\ResourceAssociationsController;
|
|
use App\Components\Admin\Http\Controllers\MigrationsController;
|
|
|
|
/*
|
|
|--------------------------------------------------------------------------
|
|
| Admin Web Routes
|
|
|--------------------------------------------------------------------------
|
|
*/
|
|
|
|
Route::prefix('admin')->name('admin.')->middleware(['web', 'auth'])->group(function () {
|
|
|
|
Route::middleware(['resource.access:web_pages,admin.roles.php'])
|
|
->group(function () {
|
|
// Resource routes with updated naming convention
|
|
Route::resource('roles', RolesController::class)
|
|
->except(['show'])
|
|
->names([
|
|
'index' => 'roles.index',
|
|
'create' => 'roles.create',
|
|
'store' => 'roles.store',
|
|
'edit' => 'roles.edit',
|
|
'update' => 'roles.update',
|
|
'destroy' => 'roles.destroy',
|
|
]);
|
|
|
|
// Permission management routes
|
|
Route::get('/roles/{role}/permissions', [RolesController::class, 'managePermissions'])
|
|
->name('roles.permissions');
|
|
|
|
Route::post('/roles/{role}/permissions', [RolesController::class, 'updatePermissions'])
|
|
->name('roles.permissions.update');
|
|
});
|
|
|
|
Route::middleware('resource.access:web_pages,admin.users.php')
|
|
->group(function () {
|
|
Route::resource('users', UsersController::class)
|
|
->except(['show']) // We don't need a show route for users
|
|
->names([
|
|
'index' => 'users.index',
|
|
'create' => 'users.create',
|
|
'store' => 'users.store',
|
|
'edit' => 'users.edit',
|
|
'update' => 'users.update',
|
|
'destroy' => 'users.destroy',
|
|
]);
|
|
});
|
|
|
|
// Resource Types management
|
|
Route::middleware('resource.access:web_pages,admin.resource-types.php')->group(function () {
|
|
Route::resource('resource-types', ResourceTypesController::class);
|
|
});
|
|
|
|
// Resource Type Mappings Routes
|
|
Route::middleware('resource.access:web_pages,admin.resource-type-mappings.php')
|
|
->group(function () {
|
|
// AJAX routes must come BEFORE resource routes to prevent conflicts
|
|
Route::prefix('resource-type-mappings')
|
|
->name('resource-type-mappings.')
|
|
->middleware(['resource.access:web_pages,admin.resource-type-mappings.php'])
|
|
->group(function () {
|
|
Route::get('/ajax/tables', [ResourceTypeMappingsController::class, 'getTables'])
|
|
->name('tables');
|
|
Route::get('/ajax/columns', [ResourceTypeMappingsController::class, 'getColumns'])
|
|
->name('columns');
|
|
});
|
|
|
|
// Main resource routes
|
|
Route::resource('resource-type-mappings', ResourceTypeMappingsController::class)
|
|
->parameters([
|
|
'resource-type-mappings' => 'resource_type_mapping'
|
|
])
|
|
->except(['show']) // We don't need a show route
|
|
->names([
|
|
'index' => 'resource-type-mappings.index',
|
|
'create' => 'resource-type-mappings.create',
|
|
'store' => 'resource-type-mappings.store',
|
|
'edit' => 'resource-type-mappings.edit',
|
|
'update' => 'resource-type-mappings.update',
|
|
'destroy' => 'resource-type-mappings.destroy',
|
|
]);
|
|
});
|
|
|
|
Route::middleware('resource.access:web_pages,admin.menu-types.php')
|
|
->group(function () {
|
|
Route::resource('menu-types', MenuTypesController::class)
|
|
->except(['show']) // Since we don't have a show route
|
|
->names([
|
|
'index' => 'menu-types.index',
|
|
'create' => 'menu-types.create',
|
|
'store' => 'menu-types.store',
|
|
'edit' => 'menu-types.edit',
|
|
'update' => 'menu-types.update',
|
|
'destroy' => 'menu-types.destroy',
|
|
]);
|
|
});
|
|
|
|
Route::middleware('resource.access:web_pages,admin.navigation-items.php')
|
|
->group(function () {
|
|
Route::resource('navigation-items', NavigationItemsController::class)
|
|
->except(['show']) // We don't have a show route
|
|
->names([
|
|
'index' => 'navigation-items.index',
|
|
'create' => 'navigation-items.create',
|
|
'store' => 'navigation-items.store',
|
|
'edit' => 'navigation-items.edit',
|
|
'update' => 'navigation-items.update',
|
|
'destroy' => 'navigation-items.destroy',
|
|
]);
|
|
});
|
|
|
|
// Route::resource('permissions', PermissionsController::class);
|
|
Route::get('/', [AdminDashboardController::class, 'index'])->name('admin.dashboard');
|
|
|
|
Route::get('/database-io', [AdminDashboardController::class, 'getDatabaseIO'])
|
|
->name('database.io');
|
|
|
|
Route::middleware('resource.access:web_pages,admin.user-roles.php')
|
|
->group(function () {
|
|
Route::resource('user-roles', UserRolesController::class)
|
|
->parameters([
|
|
'user-roles' => 'userRole'
|
|
])
|
|
->except(['show']) // We don't have a show route
|
|
->names([
|
|
'index' => 'user-roles.index',
|
|
'create' => 'user-roles.create',
|
|
'store' => 'user-roles.store',
|
|
'edit' => 'user-roles.edit',
|
|
'update' => 'user-roles.update',
|
|
'destroy' => 'user-roles.destroy',
|
|
]);
|
|
});
|
|
|
|
Route::middleware('resource.access:web_pages,admin.web-pages.php')->group(function () {
|
|
Route::resource('web-pages', WebPagesController::class);
|
|
});
|
|
|
|
Route::middleware('resource.access:web_pages,admin.permissions.php')->group(function () {
|
|
Route::resource('permissions', PermissionsController::class);
|
|
});
|
|
|
|
|
|
// Resource Associations Routes
|
|
Route::middleware('resource.access:web_pages,admin.resource-associations.php')
|
|
->group(function () {
|
|
// AJAX routes must come before resource routes to prevent conflicts
|
|
Route::prefix('resource-associations')->name('resource-associations.')->group(function () {
|
|
Route::get('/roles', [ResourceAssociationsController::class, 'getRoles'])
|
|
->name('roles');
|
|
Route::get('/resources', [ResourceAssociationsController::class, 'getResources'])
|
|
->name('resources');
|
|
});
|
|
|
|
// Main resource routes
|
|
Route::resource('resource-associations', ResourceAssociationsController::class)
|
|
->parameters([
|
|
'resource-associations' => 'resource_association'
|
|
])
|
|
->except(['show']) // We don't need a show route
|
|
->names([
|
|
'index' => 'resource-associations.index',
|
|
'create' => 'resource-associations.create',
|
|
'store' => 'resource-associations.store',
|
|
'edit' => 'resource-associations.edit',
|
|
'update' => 'resource-associations.update',
|
|
'destroy' => 'resource-associations.destroy',
|
|
]);
|
|
});
|
|
|
|
Route::middleware('resource.access:web_pages,admin.migrations.php')
|
|
->group(function () {
|
|
Route::resource('migrations', MigrationsController::class)
|
|
->only(['index', 'show'])
|
|
->names([
|
|
'index' => 'migrations.index',
|
|
'show' => 'migrations.show',
|
|
]);
|
|
});
|
|
});
|
|
|