true, 'logout' => true, 'register' => false, 'reset' => true, // for resetting passwords 'confirm' => false, // for additional password confirmations 'verify' => false, // for email verification ]); Route::get('logout',[LoginController::class,'logout']) ->name('logout-get'); // Account linking to OPENID host Route::group(['middleware'=>['theme:adminlte-be']],function() { Route::get('auth/{socialProvider}',[SocialLoginController::class,'redirectToProvider']); Route::get('auth/{socialProvider}/callback',[SocialLoginController::class,'handleProviderCallback']); Route::get('auth/{socialProvider}/token',[SocialLoginController::class,'handleBearerTokenCallback']); Route::get('auth/{socialProvider}/link',[SocialLoginController::class,'link']); Route::post('auth/{socialProvider}/linkcomplete',[SocialLoginController::class,'linkcomplete']); }); // Return from user switch Route::get('admin/switch/stop',[SwitchUserController::class,'switch_stop']) ->middleware('auth') ->name('switch.stop'); // Generic Image Renderer - Render images that we dont have with a generic image Route::get('image/generic/{width}/{height}/{color}/{name?}',[MediaController::class,'image']) ->name('image'); // Our Admin Routes - for wholesalers Route::group(['middleware'=>['theme:adminlte-be','auth','role:wholesaler'],'prefix'=>'a'],function() { // Site Setup Route::match(['get','post'],'setup',[AdminController::class,'setup']); // Checkout Setup (Payments) Route::get('checkout',[CheckoutController::class,'home']); Route::get('checkout/{o?}',[CheckoutController::class,'view']) ->where('o','[0-9]+'); Route::post('checkout/{o?}',[CheckoutController::class,'addedit']) ->where('o','[0-9]+'); // Product Setup Route::match(['get'],'product',[ProductController::class,'home']); Route::get('product/details/{o?}',[ProductController::class,'details']) ->where('o','[0-9]+'); Route::post('product/details/{o?}',[ProductController::class,'details_addedit']) ->where('o','[0-9]+'); // Supplier Setup Route::get('supplier',[SupplierController::class,'admin_home']); Route::get('supplier/cost/new/{o}',[SupplierController::class,'cost_add']); Route::post('supplier/cost/new/{o}',[SupplierController::class,'cost_submit']); Route::get('supplier/cost/{o}',[SupplierController::class,'cost']) ->where('o','[0-9]+'); Route::get('supplier/details/{o?}',[SupplierController::class,'view']) ->where('o','[0-9]+'); Route::post('supplier/details/{o?}',[SupplierController::class,'addedit']) ->where('o','[0-9]+'); Route::get('supplier/product/add',[SupplierController::class,'product_add']); Route::get('supplier/product/addedit/{o}/{oo}/{type}',[SupplierController::class,'product_view']) ->where('o','[0-9]+') ->where('oo','[0-9]+') ->whereIn('type',Supplier::offeringTypeKeys()->toArray()); Route::post('supplier/product/addedit/{o}/{oo}/{type}',[SupplierController::class,'product_addedit']) ->where('o','[0-9]+') ->where('oo','[0-9]+') ->whereIn('type',Supplier::offeringTypeKeys()->toArray()); Route::post('supplier/product/view/{type}/{oo?}',[SupplierController::class,'product_view_type']) ->whereIn('type',Supplier::offeringTypeKeys()->toArray()) ->where('oo','[0-9]+'); Route::get('report/accounts',[ReportController::class,'accounts']); Route::get('report/products',[ReportController::class,'products']); Route::get('report/services',[ReportController::class,'services']); // Charges - @todo This should probably go to resellers Route::match(['get','post'],'charge/addedit/{o?}',[AdminController::class,'charge_addedit']); Route::get('charge/unprocessed',[AdminController::class,'charge_unprocessed']); // Payments - @todo This should probably go to resellers Route::match(['get','post'],'payment/addedit/{o?}',[AdminController::class,'pay_addedit']); Route::get('payment/unapplied',[AdminController::class,'pay_unapplied']); // Services // @todo This should probably go to resellers - implement a change audit log first Route::post('service/update/{o}',[ServiceController::class,'update']) ->where('o','[0-9]+'); // Linking supplier to user Route::post('user/supplier/add/{o}',[UserController::class,'supplier_addedit']) ->where('o','[0-9]+'); Route::get('user/supplier/delete/{o}/{so}',[UserController::class,'supplier_delete']) ->where('o','[0-9]+') ->where('so','[0-9]+'); //@deprecated // Route::get('service/{o}','AdminHomeController@service'); // Route::post('service/{o}','AdminHomeController@service_update'); // Route::get('accounting/connect','AccountingController@connect'); }); // Our Reseller Routes Route::group(['middleware'=>['theme:adminlte-be','auth','role:reseller'],'prefix'=>'r'],function() { // Enable user switch Route::get('switch/start/{user}',[SwitchUserController::class,'switch_start']) ->middleware('can:assume,user') ->name('switch.start'); // Reseller Reports Route::group(['middleware'=>['theme:adminlte-be','auth','role:reseller'],'prefix'=>'report'],function() { Route::get('domain',[ServiceController::class,'domain_list']); Route::get('email',[ServiceController::class,'email_list']); Route::get('hosting',[ServiceController::class,'hosting_list']); }); // Charges Route::get('charges/{o}',[AdminController::class,'charge_pending_account']) ->middleware('can:view,o') ->where('o','[0-9]+'); // Reseller API calls Route::post('service_change_charges/{o}',[ServiceController::class,'service_change_charges_display']) ->where('o','[0-9]+'); }); // Our User Routes Route::group(['middleware'=>['theme:adminlte-be','auth'],'prefix'=>'u'],function() { Route::get('home',[HomeController::class,'home']); Route::get('home/{o}',[HomeController::class,'home']) ->where('o','[0-9]+') ->middleware('can:view,o'); // Route::get('account/{o}/invoice','User\AccountController@view_invoice_next') // ->where('o','[0-9]+') // ->middleware('can:view,o'); Route::post('checkout/pay',[CheckoutController::class,'pay']); Route::get('invoice/{o}',[InvoiceController::class,'view']) ->where('o','[0-9]+') ->middleware('can:view,o'); Route::get('invoice/{o}/pdf',[InvoiceController::class,'pdf']) ->where('o','[0-9]+') ->middleware('can:view,o'); Route::get('invoice/cart',[CheckoutController::class,'cart_invoice']); Route::get('invoice/cart/{o}',[CheckoutController::class,'cart_invoice']) ->where('o','[0-9]+') ->middleware('can:view,o'); Route::get('service/{o}',[ServiceController::class,'home']) ->where('o','[0-9]+') ->middleware('can:view,o'); Route::match(['get','post'],'service/{o}/cancel-request',[ServiceController::class,'cancel_request']) ->where('o','[0-9]+') ->middleware('can:progress,o,"cancel-request"'); Route::match(['get','post'],'service/{o}/change-request',[ServiceController::class,'change_request']) ->where('o','[0-9]+') ->middleware('can:progress,o,"change-request"'); // @todo This shouldnt be a user privilege. Route::match(['get','post'],'service/{o}/change-pending',[ServiceController::class,'change_pending']) ->where('o','[0-9]+') ->middleware('can:progress,o,"change-pending"'); Route::get('service/{o}/change/{status}',[ServiceController::class,'change']) ->where('o','[0-9]+') ->middleware('can:progress,o,status'); }); // Doorman Code Routes Route::group(['middleware'=>['theme:adminlte-be'],'prefix'=>'u'],function() { Route::get('invoice/{o}/email/{code}',[InvoiceController::class,'view']) ->where('o','[0-9]+') ->where('code','[0-9A-Z]{6}'); }); // Frontend Routes (Non-Authed Users) Route::group(['middleware'=>['theme:metronic-fe']],function() { Route::get('/',[WelcomeController::class,'home']); Route::get('order',[OrderController::class,'index']); Route::post('order',[OrderController::class,'submit']); }); Route::get('product_order/{o}',[OrderController::class,'product_order']); Route::get('product_info/{o}',[OrderController::class,'product_info']); Route::redirect('home','u/home'); Route::get('search',[SearchController::class,'search']); Route::get('pay/paypal/authorise',[PaypalController::class,'authorise']); Route::get('pay/paypal/cancel',[PaypalController::class,'cancel']); Route::get('pay/paypal/capture',[PaypalController::class,'capture']);