Files
portal-api/routes/admin.php
T
2026-01-31 10:08:25 +07:00

426 lines
22 KiB
PHP

<?php
use App\Http\Controllers\admin\AddonController;
use App\Http\Controllers\admin\CouponController;
use App\Http\Controllers\admin\CustomerController;
use App\Http\Controllers\admin\DomainController;
use App\Http\Controllers\admin\GroupController;
use App\Http\Controllers\admin\InvoiceController;
use App\Http\Controllers\admin\LoginController;
use App\Http\Controllers\admin\MainController as AdminMain;
use App\Http\Controllers\admin\MediaController;
use App\Http\Controllers\admin\MenuController;
use App\Http\Controllers\admin\ModuleDNSController;
use App\Http\Controllers\admin\ModuleHostingController;
use App\Http\Controllers\admin\ModuleIPPoolController;
use App\Http\Controllers\admin\ModulevCenterController;
use App\Http\Controllers\admin\OrderController;
use App\Http\Controllers\admin\package\Datacenter;
use App\Http\Controllers\admin\package\Datastore;
use App\Http\Controllers\admin\package\Folder;
use App\Http\Controllers\admin\package\Group;
use App\Http\Controllers\admin\package\Host;
use App\Http\Controllers\admin\package\IPMapping;
use App\Http\Controllers\admin\package\Network;
use App\Http\Controllers\admin\package\OsVersion;
use App\Http\Controllers\admin\package\SyncController;
use App\Http\Controllers\admin\PaymentController;
use App\Http\Controllers\admin\PostController;
use App\Http\Controllers\admin\ProductController;
use App\Http\Controllers\admin\RolesController;
use App\Http\Controllers\admin\SettingController;
use App\Http\Controllers\admin\SupportController;
use App\Http\Controllers\admin\TaskController;
use App\Http\Controllers\admin\TemplateController;
use App\Http\Controllers\admin\UserController;
use App\Http\Controllers\admin\vm\VirtualMachineController;
use Illuminate\Support\Facades\Cookie;
use Illuminate\Support\Facades\Http;
use Illuminate\Support\Facades\Route;
Route::prefix('administrator')->group(function () {
//Login
Route::middleware('LoginCheck')->controller(LoginController::class)->group(function () {
Route::get('login', 'index')->name('login');
Route::post('login', 'store')->name('login.store');
});
//Administrator
Route::middleware(['auth', 'Staff'])->group(function () {
Route::any('/ckfinder/connector', '\CKSource\CKFinderBridge\Controller\CKFinderController@requestAction')
->name('ckfinder_connector');
Route::any('/ckfinder/browser', '\CKSource\CKFinderBridge\Controller\CKFinderController@browserAction')
->name('ckfinder_browser');
//Main
Route::get('/', [AdminMain::class, 'index'])->name('dashboard');
Route::get('system-activity-log', [AdminMain::class, 'SystemLog'])->name('system.log');
Route::get('clear-cache', [AdminMain::class, 'ClearCache'])->name('clear.cache');
//Logout
Route::get('logout', function () {
Cookie::queue(Cookie::forget('accessToken'));
auth()->guard('admins')->user()->tokens()->delete();
auth()->guard('admins')->logout();
return redirect()->route('login');
})->name('logout');
//My Info
Route::get('my-account', function () {
$user = auth('admins')->user();
$title = 'Thông tin cá nhân';
return view('admin.account', compact('user', 'title'));
})->name('account');
Route::group([
'as' => 'setting.',
'controller' => SettingController::class
], function () {
Route::get('general-setting', 'index')->name('general');
Route::get('smtp-setting', 'smtp')->name('smtp');
Route::put('setting-store', 'store')->name('store');
});
//View all administrator
Route::controller(UserController::class)->group(function () {
Route::get('list-all', 'index')->name('admin.user.index');
Route::get('add-new-account', 'create')->name('admin.user.create');
Route::post('add-new-account', 'store')->name('admin.user.store');
Route::get('edit-admin-account', 'edit')->name('admin.user.edit');
Route::put('edit-admin-account', 'update')->name('admin.user.update');
Route::delete('remove-admin-account', 'destroy')->name('admin.user.destroy');
});
//role
Route::controller(RolesController::class)->group(function () {
Route::get('list-role', 'index')->name('role.index');
Route::get('add-role', 'create')->name('role.create');
Route::post('add-role', 'store')->name('role.store');
Route::get('edit-role/{id}', 'edit')->name('role.edit');
Route::put('edit-role/{id}', 'update')->name('role.update');
Route::delete('remove-role/{id}', 'destroy')->name('role.destroy');
});
//View All Client
Route::controller(CustomerController::class)->group(function () {
Route::get('list-customer', 'index')->name('customer.index');
Route::get('view-customer', 'getCustomerInfo')->name('customer.info');
Route::get('view-profile', 'getCustomerProfile')->name('customer.profile');
Route::post('view-profile', 'storeCustomerProfile')->name('customer.profile.store');
Route::get('view-product', 'getCustomerProduct')->name('customer.product');
Route::put('view-product', 'storeCustomerProduct')->name('customer.product.update');
Route::get('view-domain', 'getCustomerDomain')->name('customer.domain');
Route::get('view-invoice', 'getCustomerInvoice')->name('customer.invoice');
Route::get('view-transactions', 'getCustomerTransactions')->name('customer.trans');
Route::get('view-email', 'getCustomerEmail')->name('customer.email');
Route::get('view-log', 'getCustomerLog')->name('customer.log');
Route::get('add-client', 'create')->name('customer.create');
Route::post('add-client', 'store')->name('customer.store');
Route::get('add-pay', 'addPay')->name('customer.addpay');
Route::put('add-pay', 'addPayStore')->name('customer.addPayStore');
Route::get('reset-password-client', 'PasswordReset')->name('customer.PasswordReset');
Route::get('login-with-customer', 'LoginWithCustomer')->name('customer.Login');
Route::get('logout-with-customer', 'LogoutWithCustomer')->name('customer.Logout');
});
//View All Product
Route::controller(ProductController::class)->group(function () {
Route::get('all-product', 'index')->name('product.index');
Route::get('add-new-product', 'create')->name('product.create');
Route::post('add-new-product', 'store')->name('product.store');
Route::get('view-product-item', 'edit')->name('product.edit');
Route::put('view-product-item', 'update')->name('product.update');
Route::delete('remove-product-item', 'destroy')->name('product.destroy');
});
//Group Controller
Route::controller(GroupController::class)->group(function () {
Route::get('add-group', 'addGroupInformation')->name('group.create');
Route::post('add-group', 'storeGroupInformation')->name('group.information.store');
Route::get('view-group', 'getGroupInformation')->name('group.information');
Route::put('view-group', 'updateGroupInformation')->name('group.information.update');
Route::delete('remove-group', 'removeGroup')->name('group.remove');
});
//Addon Controller
Route::controller(AddonController::class)->group(function () {
Route::get('list-addon', 'index')->name('addon.index');
Route::get('add-addon', 'create')->name('addon.create');
Route::post('add-addon', 'store')->name('addon.store');
Route::get('edit-addon/{id}', 'edit')->name('addon.edit');
Route::put('edit-addon/{id}', 'update')->name('addon.update');
Route::delete('remove-addon/{id}', 'destroy')->name('addon.destroy');
});
//Domain Price
Route::controller(DomainController::class)->group(function () {
Route::get('list-domain', 'index')->name('domain.index');
Route::post('import-csv', 'import')->name('domain.import');
});
//Module Hosting Server
Route::controller(ModuleHostingController::class)->group(function () {
Route::get('list-all-server-hosting', 'index')->name('module.hosting.index');
Route::post('import-hosting-from-csv', 'import')->name('module.hosting.import');
Route::get('add-new-server-hosting', 'create')->name('module.hosting.create');
Route::post('add-new-server-hosting', 'store')->name('module.hosting.store');
Route::get('view-server-hosting/{id}', 'edit')->name('module.hosting.edit');
Route::put('view-server-hosting{id}', 'update')->name('module.hosting.update');
Route::delete('remove-server-hosting/{id}', 'destroy')->name('module.hosting.destroy');
});
//Module DNS Server
Route::controller(ModuleDNSController::class)->group(function () {
Route::get('list-all-server-dns', 'index')->name('module.dns.index');
Route::post('import-dns-from-csv', 'import')->name('module.dns.import');
Route::get('add-new-server-dns', 'create')->name('module.dns.create');
Route::post('add-new-server-dns', 'store')->name('module.dns.store');
Route::get('view-server-dns/{id}', 'edit')->name('module.dns.edit');
Route::put('view-server-dns/{id}', 'update')->name('module.dns.update');
Route::delete('remove-server-dns/{id}', 'destroy')->name('module.dns.destroy');
});
Route::controller(ModuleIPPoolController::class)->group(function () {
Route::get('list-all-server-ip-pool', 'index')->name('module.ippool.index');
Route::post('import-ip-pool-from-csv', 'import')->name('module.ippool.import');
Route::get('add-new-server-ip-pool', 'create')->name('module.ippool.create');
Route::post('add-new-server-ip-pool', 'store')->name('module.ippool.store');
Route::get('view-server-ip-pool/{id}', 'edit')->name('module.ippool.edit');
Route::put('view-server-ip-pool/{id}', 'update')->name('module.ippool.update');
Route::delete('remove-server-ip-pool/{id}', 'destroy')->name('module.ippool.destroy');
});
//Module vCenter Server
Route::controller(ModulevCenterController::class)->group(function () {
Route::get('list-all-vcenter', 'index')->name('module.vcenter.index');
Route::post('import-vcenter-from-csv', 'import')->name('module.vcenter.import');
Route::get('add-new-vcenter', 'create')->name('module.vcenter.create');
Route::post('add-new-vcenter', 'store')->name('module.vcenter.store');
Route::get('view-vcenter/{id}', 'edit')->name('module.vcenter.edit');
Route::put('view-vcenter/{id}', 'update')->name('module.vcenter.update');
Route::delete('remove-vcenter/{id}', 'destroy')->name('module.vcenter.destroy');
});
//Package Route
Route::prefix('package')->group(function () {
//Datacenter
Route::group([
'prefix' => 'datacenter',
'as' => 'package.datacenter.',
'controller' => Datacenter::class
], function () {
Route::get('list-all-datacenter', 'index')->name('index');
Route::get('sync-datacenter', 'sync')->name('sync');
Route::get('create', 'create')->name('create');
Route::post('create', 'store')->name('store');
Route::get('edit/{id}', 'edit')->name('edit');
Route::put('edit/{id}', 'update')->name('update');
Route::delete('remove/{id}', 'destroy')->name('destroy');
Route::get('datatable', 'datatable')->name('datatable');
});
//Datastore
Route::group([
'prefix' => 'datastore',
'as' => 'package.datastore.',
'controller' => Datastore::class
], function () {
Route::get('list-all-datastore', 'index')->name('index');
Route::get('sync-datastore', 'sync')->name('sync');
Route::get('create', 'create')->name('create');
Route::post('create', 'store')->name('store');
Route::get('edit/{id}', 'edit')->name('edit');
Route::put('edit/{id}', 'update')->name('update');
Route::delete('remove/{id}', 'destroy')->name('destroy');
Route::get('datatable', 'datatable')->name('datatable');
});
//Host
Route::group([
'prefix' => 'host',
'as' => 'package.host.',
'controller' => Host::class
], function () {
Route::get('list-all-host', 'index')->name('index');
Route::get('sync-host', 'sync')->name('sync');
Route::get('create', 'create')->name('create');
Route::post('create', 'store')->name('store');
Route::get('edit/{id}', 'edit')->name('edit');
Route::put('edit/{id}', 'update')->name('update');
Route::delete('remove/{id}', 'destroy')->name('destroy');
Route::get('datatable', 'datatable')->name('datatable');
});
// Network
Route::group([
'prefix' => 'network',
'as' => 'package.network.',
'controller' => Network::class
], function () {
Route::get('list-all-network', 'index')->name('index');
Route::get('sync-network', 'sync')->name('sync');
Route::get('create', 'create')->name('create');
Route::post('create', 'store')->name('store');
Route::get('edit/{id}', 'edit')->name('edit');
Route::put('edit/{id}', 'update')->name('update');
Route::delete('remove/{id}', 'destroy')->name('destroy');
});
Route::group([
'prefix' => 'folder',
'as' => 'package.folder.',
'controller' => Folder::class
], function () {
Route::get('list-all-folder', 'index')->name('index');
Route::get('sync-folder', 'sync')->name('sync');
Route::get('create', 'create')->name('create');
Route::post('create', 'store')->name('store');
Route::get('edit/{id}', 'edit')->name('edit');
Route::put('edit/{id}', 'update')->name('update');
Route::delete('remove/{id}', 'destroy')->name('destroy');
Route::get('datatable', 'datatable')->name('datatable');
});
Route::group([
'prefix' => 'group',
'as' => 'package.group.',
'controller' => Group::class
], function () {
Route::get('list-all-group', 'index')->name('index');
Route::post('import-group-by-csv', 'import')->name('import');
Route::get('create', 'create')->name('create');
Route::post('create', 'store')->name('store');
Route::get('edit/{id}', 'edit')->name('edit');
Route::put('edit-group/{id}', 'update')->name('update');
Route::delete('remove-group/{id}', 'destroy')->name('destroy');
});
Route::group([
'prefix' => 'version',
'as' => 'package.version.',
'controller' => OsVersion::class
], function () {
Route::get('list-all-os-version', 'index')->name('index');
Route::get('create', 'create')->name('create');
Route::post('create', 'store')->name('store');
Route::get('edit/{id}', 'edit')->name('edit');
Route::put('edit/{id}', 'update')->name('update');
Route::delete('remove-os-version/{id}', 'destroy')->name('destroy');
});
Route::group([
'prefix' => 'ipaddress',
'as' => 'package.ipaddress.',
'controller' => IPMapping::class
], function () {
Route::get('list-all-ip-address', 'index')->name('index');
Route::get('create', 'create')->name('create');
Route::post('create', 'store')->name('store');
Route::get('edit/{id}', 'edit')->name('edit');
Route::put('edit/{id}', 'update')->name('update');
Route::delete('remove-ip-address/{id}', 'destroy')->name('destroy');
});
Route::group([
'prefix' => 'vm',
'as' => 'package.vm.',
'controller' => VirtualMachineController::class
], function () {
Route::get('list-all-vm', 'index')->name('index');
Route::get('create', 'create')->name('create');
Route::post('create', 'store')->name('store');
Route::get('edit/{id}', 'edit')->name('edit');
Route::put('edit/{id}', 'update')->name('update');
Route::delete('remove-vm/{id}', 'destroy')->name('destroy');
});
Route::get('sync-all-package', [SyncController::class, 'index'])->name('package.sync.all');
});
//Oder
Route::controller(OrderController::class)->group(function () {
Route::get('list-all-order', 'index')->name('admin.order.index');
Route::get('add-new-order', 'create')->name('admin.order.create');
Route::post('add-new-order', 'store')->name('admin.order.store');
Route::get('view-order/{id}', 'edit')->name('admin.order.edit');
Route::put('view-order/{id}', 'update')->name('admin.order.update');
Route::delete('remove-order', 'destroy')->name('admin.order.destroy');
});
//Task
Route::controller(TaskController::class)->group(function () {
Route::post('task-manager', 'Task')->name('task.manager');
Route::get('view-console-ticket', 'Console')->name('task.console');
Route::post('task-action', 'Action')->name('task.action');
Route::post('task-reinstall', 'Reinstall')->name('task.reinstall');
});
//Invoice
Route::controller(InvoiceController::class)->group(function () {
Route::get('list-all-invoice', 'index')->name('admin.invoice.index');
Route::get('view-invoice-item/{id}', 'edit')->name('admin.invoice.edit');
Route::put('view-invoice-item/{id}', 'update')->name('admin.invoice.update');
Route::delete('remove-invoice/{id}', 'destroy')->name('admin.invoice.destroy');
});
//Email Template
Route::controller(TemplateController::class)->group(function () {
Route::get('list-email-template', 'index')->name('template.index');
Route::get('add-new-template', 'create')->name('template.create');
Route::post('add-new-template', 'store')->name('template.store');
Route::get('view-template', 'edit')->name('template.edit');
Route::put('view-template', 'update')->name('template.update');
Route::delete('remove-template', 'destroy')->name('template.destroy');
});
//Coupon
Route::controller(CouponController::class)->group(function () {
Route::get('list-coupon', 'index')->name('coupon.index');
Route::get('create-coupon', 'create')->name('coupon.create');
Route::post('create-coupon', 'store')->name('coupon.store');
Route::get('edit-coupon/{id}', 'edit')->name('coupon.edit');
Route::put('edit-coupon/{id}', 'update')->name('coupon.update');
Route::delete('remove-coupon/{id}', 'destroy')->name('coupon.destroy');
});
//Support
Route::controller(SupportController::class)->group(function () {
Route::get('list-all-support', 'index')->name('support.index');
Route::get('view-ticket/{ticket_num}', 'edit')->name('support.edit');
Route::post('reply-ticket/{id}', 'reply')->name('support.reply');
Route::get('close-ticket/{ticket_num}', 'close')->name('support.close');
});
//Media
Route::controller(MediaController::class)->group(function () {
Route::post('upload-image', 'uploadImage')->name('media.upload');
Route::post('upload-media', 'uploadCKEditor')->name('media.ckeditor');
});
//Post
Route::controller(PostController::class)->group(function () {
Route::get('list-post', 'index')->name('post.index');
Route::get('add-post', 'create')->name('post.create');
Route::post('add-post', 'store')->name('post.store');
Route::get('edit-post/{id}', 'edit')->name('post.edit');
Route::put('edit-post/{id}', 'update')->name('post.update');
Route::delete('remove-post/{id}', 'destroy')->name('post.destroy');
});
Route::controller(PaymentController::class)->group(function () {
Route::get('list-payment', 'index')->name('payment.index');
Route::get('add-payment', 'create')->name('payment.create');
Route::post('add-payment', 'store')->name('payment.store');
Route::get('edit-payment/{id}', 'edit')->name('payment.edit');
Route::put('edit-payment/{id}', 'update')->name('payment.update');
Route::delete('remove-payment/{id}', 'destroy')->name('payment.destroy');
});
Route::controller(MenuController::class)->group(function () {
Route::get('list-menu', 'index')->name('menu.index');
Route::get('add-new-menu', 'create')->name('menu.create');
Route::post('add-new-menu', 'store')->name('menu.store');
Route::get('edit-menu/{id}', 'edit')->name('menu.edit');
Route::put('edit-menu/{id}', 'update')->name('menu.update');
Route::delete('remove-menu/{id}', 'destroy')->name('menu.destroy');
});
});
});