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'); }); //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'); }); //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'); }); //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'); }); // 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::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::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'); }); }); }); Route::middleware("IsLoginCheck") ->controller(ClientController::class) ->group(function () { Route::get('dang-nhap.html', 'Login')->name('user.login'); Route::post('dang-nhap.html', 'LoginStore')->name("user.login.store"); Route::get('quen-mat-khau.html', 'Reset')->name('user.reset'); Route::post('quen-mat-khau.html', 'ResetStore')->name('user.reset.store'); Route::get('dang-ky-tai-khoan.html', 'Register')->name('user.register'); Route::post('dang-ky-tai-khoan.html', 'RegisterStore')->name('user.register.store'); Route::get('xac-thuc-tai-khoan.html', 'Verify')->name('user.verify'); Route::post('cap-nhat-thong-bao.html', 'updateNotification')->name('user.updateNotification'); }); Route::middleware("CustomerLoginCheck")->group(function () { // Route::get('/trang-chu', [MainController::class, 'index'])->name("home_old"); Route::get('/', [MainController::class, 'index_new'])->name('home'); Route::get('nhat-ky-hoat-dong.html', [CustomerLogController::class, 'index'])->name('frontend.customer.log'); Route::controller(ClientController::class)->group(function () { Route::get('dang-xuat.html', 'Logout')->name("user.logout"); Route::get('thong-tin-tai-khoan.html', 'Information')->name('user.information'); Route::put('thong-tin-tai-khoan.html', 'StoreInformation')->name('user.information.store'); Route::get('lich-su-email.html', 'Email')->name('user.email'); Route::get('chi-tiet-email.html', 'ViewEmail')->name('user.email.view'); Route::get('doi-mat-khau.html', 'ChangePassword')->name('user.password'); Route::put('doi-mat-khau.html', 'StoreChangePassword')->name('user.password.store'); }); Route::controller(TicketController::class)->group(function () { Route::get('danh-sach-yeu-cau-support.html', 'index')->name('ticket'); Route::get('gui-yeu-cau-support.html', 'create')->name('ticket.create'); Route::post('gui-yeu-cau-support.html', 'store')->name('ticket.store'); Route::get('xem-yeu-cau-support.html', 'show')->name('ticket.show'); Route::post('reply-yeu-cau-support.html', 'ReplyStore')->name('ticket.reply.store'); Route::put('dong-yeu-cau-support.html', 'ClosedTicket')->name('ticket.closed'); }); Route::controller(CustomerInvoice::class)->group(function () { Route::post('thanh-toan-hoa-don/{order_id}/{order_num}', 'store')->name('client.invoice.store'); Route::get('danh-sach-hoa-don', 'index')->name('invoice.index'); Route::get('chi-tiet-hoa-don/{invoice_id}/{order_num}', 'show')->name('invoice.show'); }); Route::controller(ShopController::class)->group(function () { Route::get('danh-sach-dich-vu.html', 'index')->name('shop'); Route::get('dich-vu/{slug}', 'show')->name('shop.show'); Route::get('product/{slug}', 'getProduct')->name('shop.product'); Route::post('them-vao-gio-hang.html', 'store')->name('shop.store'); }); Route::controller(ClientOrderController::class)->group(function () { Route::post('them-order', 'store')->name('client.order.store'); Route::get('don-hang/{order_id}/thanh-toan', 'payment')->name('client.order.payment'); Route::delete('don-hang/{order_id}', 'destroy')->name('client.order.destroy'); Route::get('danh-sach-don-hang', 'index')->name('order.index'); }); Route::controller(CartController::class)->group(function () { Route::post('them-gio-hang', 'addCart')->name('cart.add'); Route::get('gio-hang', 'index')->name('cart.index'); Route::get('gio-hang.html', 'index')->name('cart'); // Route::post('gio-hang.html', 'store')->name('cart.store'); Route::post('gio-hang.html', 'order')->name('cart.store'); Route::post('add-coupon.html', 'applyCoupon')->name('cart.applyCoupon'); Route::get('remove-item-gio-hang.html', 'destroy')->name('cart.remove'); Route::post('order-addon', 'addon')->name('cart.addon'); }); Route::controller(ManagerService::class)->group(function () { Route::get('dich-vu-cua-toi.html', 'index')->name('service.index'); Route::get('chi-tiet-dich-vu.html', 'show')->name('service.show'); Route::post('reinstall-vmware', 'reinstall')->name('service.reinstall'); Route::post('task-action', 'action')->name('service.action'); Route::post('task-snapshot', 'snapshot')->name('service.snapshot'); Route::get('view-console.html', 'console')->name('service.console'); }); // Service Controller routes Route::controller(\App\Http\Controllers\frontend\ServiceController::class)->group(function () { Route::get('service/{invoice_id}', 'show')->name('service.detail'); Route::post('service/{invoice_id}/vm/toggle', 'toggleVM')->name('service.vm.toggle'); Route::get('service/{invoice_id}/vm/info', 'getVMInfo')->name('service.vm.info'); Route::get('service/{invoice_id}/vmware-demo', 'vmwareDemo')->name('service.vmware.demo'); Route::get('service/{invoice_id}/vm-console', 'vmConsole')->name('service.vm.console'); Route::post('secure/create-snapshots', 'createSnapshots')->name('service.create.snapshots'); Route::get('secure/get-snapshots', 'getSnapshots')->name('service.get.snapshots'); Route::post('secure/remove-snapshot', 'removeSnapshot')->name('service.remove.snapshot'); Route::post('secure/revert-snapshot', 'revertSnapshot')->name('service.revert.snapshot'); Route::post('secure/start-vm', 'startVM')->name('service.start.vm'); Route::post('secure/stop-vm', 'stopVM')->name('service.stop.vm'); }); Route::controller(CustomerDomainController::class)->group(function () { Route::get('danh-sach-ten-mien.html', 'index')->name('customer.domain.index'); }); Route::controller(RechargeController::class)->group(function () { Route::get('nap-tien.html', 'index')->name('recharge.index'); Route::post('nap-tien.html', 'paymentProcess')->name('recharge.paymentProcess.vnPay'); Route::get('nap-tien/return', 'paymentReturn')->name('recharge.return'); Route::get('thanh-toan.html', 'show')->name('recharge.show'); Route::get('lich-su-giao-dich.html', 'HistoryRecharge')->name('recharge.history'); Route::get('callback-function', 'CallbackResponse')->name('recharge.CallbackResponse'); }); Route::controller(CustomerPostController::class)->group(function () { Route::get('tin-tuc/{slug}.html', 'view')->name('post'); }); Route::controller(\App\Http\Controllers\frontend\Whois\WhoisController::class)->group(function () { Route::get('kiem-tra-ten-mien', 'index')->name('whois.index'); Route::post('api/whois/domain-info', 'getDomainInfo')->name('whois.domain-info'); Route::post('api/whois/check-availability', 'checkAvailability')->name('whois.check-availability'); }); });