Server : Apache System : Linux 145.162.205.92.host.secureserver.net 5.14.0-611.45.1.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Apr 1 05:56:53 EDT 2026 x86_64 User : tradze ( 1001) PHP Version : 8.1.34 Disable Function : NONE Directory : /home/tradze/public_html/app/Http/Middleware/ |
<?php
namespace App\Http\Middleware;
use Closure;
use Lavary\Menu\Facade as Menu;
use Illuminate\Contracts\Auth\Guard;
use App\Facades\Module;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\View;
class AdminMenuMiddleware
{
/**
* @var Authenticatable
*/
protected $auth;
/**
* @param Authenticatable $auth
*/
public function __construct(Guard $auth)
{
$this->auth = $auth;
}
/**
* Run the request filter.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
//create sidebar menu (name 'menu_left' must match variable expected in sidebar.blade.php)
Menu::make('menu_left', function ($menu) {
$menu->add('Dashboard','javascript:;')->data(array('permissions'=> ['dashboard','admin.schedules.bo.index','admin.testimonials.index','admin.faq.index','admin.banners.index']))->data('icon','icon icon-home');
//Website
$website = $menu->add('Website', 'javascript:;')->data('icon','fa fa-globe')->data('permissions', ['admin.schedules.bo.index']);
$website->add('Pages', route('admin.pages.index'))->data(array('permissions' => ['admin.pages.index']))->data('icon','fa fa-files-o');
$website->add('Commercial', route('admin.events.index'))->data(array('permissions' => ['admin.events.index']))->data('icon','fa fa-bullhorn');
$website->add('Testimonials', route('admin.testimonials.index'))->data(array('permissions' => ['admin.testimonials.index']))->data('icon','icon icon-speech');
$website->add('Faq', route('admin.faq.index'))->data(array('permissions' => ['admin.faq.index']))->data('icon','icon icon-question');
$website->add('Banners', route('admin.banners.index'))->data(array('permissions' => ['admin.banners.index']))->data('icon','fa fa-file-image-o');
$website->add('Contact Forms', route('admin.contactform.index'))->data(array('permissions' => ['admin.contactform.index']))->data('icon','icon icon-note');
$website->add('Website Forms', route('admin.corporateform.index'))->data(array('permissions' => ['admin.corporateform.index']))->data('icon','icon icon-note');
$blog = $website->add('Blog', 'javascript:;')->data(array('permissions' => ['admin.blog.categories.index', 'admin.blog.posts.index']))->data('icon','icon icon-book-open');
$blog->add('Posts', route('admin.blog.posts.index'))->data(array('permissions' => ['admin.blog.posts.index']))->data('icon','icon icon-note');
$blog->add('Categories', route('admin.blog.categories.index'))->data(array('permissions' => ['admin.blog.categories.index']))->data('icon','icon icon-list');
//Recuitment jobs
// $jobs = $menu->add('Recuitment Jobs', 'javascript:;')->data('icon','icon icon-briefcase')->data('permissions', ['admin.zenjobs.index']);
// $jobs->add('Jobs', route('admin.zenjobs.index'))->data(array('permissions'=> ['admin.zenjobs.index']))->data('icon','icon icon-briefcase');
// $jobs->add('Jobs applications', route('admin.zenjobsform.index'))->data(array('permissions'=> ['admin.zenjobsform.index']))->data('icon','icon icon-user-following');
//Schedules
if (Module::isEnabled('schedules')) {
$schedules = $menu->add('Website', 'javascript:;')->data('icon', 'icon icon-earphones-alt')->data('permissions', ['admin.schedules.bo.index']);
$schedules->add('Bookings', array('route' => 'admin.schedules.bookings.index'))->data('icon', 'icon icon-basket-loaded')->data('permissions', ['admin.schedules.bo.index']);
$schedules->add('Website working Time & Days', array('route' => 'admin.schedules.bo.index'))->data('icon', 'icon icon-calendar')->data('permissions', ['admin.schedules.bo.index']);
$schedules->add('Dynamic Pricing (Day & Time)', array('route' => 'admin.schedules.dynamicpricing.index'))->data('icon', 'icon icon-calendar')->data('permissions', ['admin.schedules.bo.index']);
$schedules->add('Global Travel Cost', array('route' => 'admin.schedules.global.travel.cost'))->data('icon', 'fa fa-truck')->data('permissions', ['admin.schedules.bo.index']);
$schedules->add('Radius', array('route' => 'admin.settings.radius.index'))->data('icon', 'fa fa-globe')->data('permissions', ['admin.settings.bo.index']);
$schedules->add('Holidays', array('route' => 'admin.schedules.daysoff.index'))->data('icon', 'icon icon-cup')->data('permissions', ['admin.schedules.daysoff.index']);
// $schedules->add('Massage table restriction', array('route' => 'admin.schedules.table.index'))->data('icon', 'fa fa-cogs')->data('permissions', ['admin.schedules.table.index']);
} //end schedules
//Services
if (Module::isEnabled('services')) {
$services = $menu->add('Rapid Response', 'javascript:;')->data('icon','icon icon-bag')->data('permissions', ['admin.services.bo.index']);
$services->add('Services', array('route' => 'admin.services.typeofservice.index'))->data('icon','icon icon-layers')->data('permissions', ['admin.services.typeofservice.index']);
$services->add('Pricing & Duration', array('route' => 'admin.services.duration.index'))->data('icon','icon icon-clock')->data('permissions', ['admin.services.duration.index']);
} //end services
// Salon Services
if (Module::isEnabled('services')) {
$services = $menu->add('Members', 'javascript:;')->data('icon','icon icon-bag')->data('permissions', ['admin.services.bo.index']);
$services->add('Services', array('route' => 'admin.services.typeofsalontreatment.index'))->data('icon','icon icon-layers')->data('permissions', ['admin.services.typeofmassage.index']);
// $services->add('Salon Treatments Duration', array('route' => 'admin.services.salonduration.index'))->data('icon','icon icon-clock')->data('permissions', ['admin.services.salonduration.index']);
} //end services
//Vouchers
if (Module::isEnabled('services')) {
$vouchers = $menu->add('Vouchers', 'javascript:;')->data('icon','fa fa-ticket')->data('permissions', ['admin.vouchers.packages.index']);
$vouchers->add('Generated codes', array('route' => 'admin.vouchers.codes.index'))->data('icon','fa fa-ticket')->data('permissions', ['admin.vouchers.codes.index']);
$vouchers->add('Offers', array('route' => 'admin.vouchers.offers.index'))->data('icon','icon icon-present')->data('permissions', ['admin.vouchers.offers.index']);
$vouchers->add('Gifts', array('route' => 'admin.vouchers.packages.index'))->data('icon','icon icon-present')->data('permissions', ['admin.vouchers.packages.index']);
$vouchers->add('General vouchers', array('route' => 'admin.vouchers.general.index'))->data('icon','fa fa-barcode')->data('permissions', ['admin.vouchers.general.index']);
} //end vouchers
//Corporate Clients&Events
if (Module::isEnabled('corporate')) {
$corporate = $menu->add('Companies', 'javascript:;')->data('icon','icon icon-diamond')->data('permissions', ['admin.accounts.companies.index', 'admin.accounts.seriesdoc.index']);
$corporate->add('Invoices', array('route' => 'admin.corporate.events.index'))->data('icon','fa fa-bullhorn')->data('permissions', ['admin.corporate.events.index']);
$corporate->add('Clients', array('route' => 'admin.corporate.companies.index'))->data('icon','fa fa-building')->data('permissions', ['admin.corporate.companies.index']);
// $corporate->add('Website Forms', route('admin.corporateform.index'))->data(array('permissions'=> ['admin.corporateform.index']))->data('icon','icon icon-note');
} //end users
//Invoices
if (Module::isEnabled('invoices')) {
$invoices = $menu->add('Invoices', 'javascript:')->data('icon','icon icon-docs')->data('permissions', ['admin.invoices.index', 'admin.invoices.bookings.index']);
$invoices->add('Invoices', array('route' => 'admin.invoices.index'))->data('icon','icon icon-docs')->data('permissions', ['admin.invoices.index']);
$invoices = $invoices->add('Create Invoice', array('route' => 'admin.invoices.bookings.index'))->data('icon','icon icon-pencil')->data('permissions', ['admin.invoices.bookings.index']);
} //end invoices
//Postcodes
// if (Module::isEnabled('postcodes'))
// {
// $postcodes = $menu->add('Postcodes', 'javascript:;')->data('icon','icon icon-directions')->data('permissions', ['admin.areas.transport.index']);
// $postcodes->add('London postcodes', array('route' => 'admin.areas.postcode.index'))->data('icon','icon icon-directions')->data('permissions', ['admin.areas.postcode.index']);
// $postcodes->add('Cost transport', array('route' => 'admin.areas.transport.index'))->data('icon','fa fa-gbp')->data('permissions', ['admin.areas.transport.index']);
// } //end services
//Users
if (Module::isEnabled('users')) {
$users = $menu->add('Users', 'javascript:;')->data('icon','icon icon-users')->data('permissions', ['admin.services.bo.index']);
$users->add('Clients', array('route' => 'admin.users.clients.index'))->data('icon','icon icon-users')->data('permissions', ['admin.users.clients.index']);
$users->add('Rapid Response', array('route' => 'admin.users.providers.index'))->data('icon','icon icon-users')->data('permissions', ['admin.users.therapists.index']);
$users->add('Members', array('route' => 'admin.users.salon.index'))->data('icon','icon icon-users')->data('permissions', ['admin.users.salon.index']);
// $users->add('Online')->data('icon','icon icon-users');
} //end users
//Accounts
if (Module::isEnabled('accounts')) {
$users = $menu->add('Accounts', 'javascript:;')->data('icon','icon icon-globe')->data('permissions', ['admin.accounts.companies.index', 'admin.accounts.seriesdoc.index']);
$users->add('Companies', array('route' => 'admin.accounts.companies.index'))->data('icon','fa fa-building')->data('permissions', ['admin.accounts.companies.index']);
$users->add('New Companies', array('route' => 'admin.accounts.seriesdoc.index'))->data('icon','icon icon-layers')->data('permissions', ['admin.accounts.seriesdoc.index']);
} //end users
//Plan
if (Module::isEnabled('services')) {
$services = $menu->add('Plan', 'javascript:;')->data('icon','icon icon-bag')->data('permissions', ['admin.plan.index']);
$services->add('Plans', array('route' => 'admin.plan.index'))->data('icon','icon icon-layers')->data('permissions', ['admin.services.typeofmassage.index']);
$services->add('Prices', array('route' => 'admin.plan.prices'))->data('icon','icon icon-layers')->data('permissions', ['admin.services.typeofmassage.index']);
// $services->add('Massage Duration', array('route' => 'admin.services.duration.index'))->data('icon','icon icon-clock')->data('permissions', ['admin.services.duration.index']);
} //end Plan
//inquiry
if (Module::isEnabled('services')) {
$services = $menu->add('Subscription Query', 'javascript:;')->data('icon','icon icon-bag')->data('permissions', ['admin.plan.subscriptionqueryindex']);
// $services->add('Subscription Query', array('route' => 'admin.plan.subscriptionqueryindex'))->data('icon','icon icon-layers')->data('permissions', ['admin.services.typeofmassage.index']);
$services->add('Subscription Query', array('route' => 'admin.plan.subscriptionmobilequeryindex'))->data('icon','icon icon-layers')->data('permissions', ['admin.services.typeofmassage.index']);
// $services->add('Massage Duration', array('route' => 'admin.services.duration.index'))->data('icon','icon icon-clock')->data('permissions', ['admin.services.duration.index']);
} //end inquiry
if (Module::isEnabled('services')) {
$services = $menu->add('Venue Query', 'javascript:;')->data('icon','icon icon-bag')->data('permissions', ['admin.plan.venuequeryindex']);
// $services->add('Subscription Query', array('route' => 'admin.plan.subscriptionqueryindex'))->data('icon','icon icon-layers')->data('permissions', ['admin.services.typeofmassage.index']);
$services->add('Venue Query', array('route' => 'admin.plan.venuequeryindex'))->data('icon','icon icon-layers')->data('permissions', ['admin.services.typeofmassage.index']);
// $services->add('Massage Duration', array('route' => 'admin.services.duration.index'))->data('icon','icon icon-clock')->data('permissions', ['admin.services.duration.index']);
} //end inquiry
//inquiry
if (Module::isEnabled('services')) {
$services = $menu->add('Reviews', 'javascript:;')->data('icon','icon icon-bag')->data('permissions', ['admin.plan.subscriptionqueryindex']);
$services->add('Reviews', array('route' => 'admin.reviews.index'))->data('icon','icon icon-layers')->data('permissions', ['admin.services.typeofmassage.index']);
// $services->add('Salon Reviews', array('route' => 'admin.reviews.index'))->data('icon','icon icon-layers')->data('permissions', ['admin.services.typeofmassage.index']);
} //end inquiry
//Payment
if (Module::isEnabled('services')) {
$services = $menu->add('Payments', 'javascript:;')->data('icon','icon icon-bag')->data('permissions', ['admin.plan.subscriptionqueryindex']);
$services->add('Payments', array('route' => 'admin.schedules.payments.index'))->data('icon','icon icon-layers')->data('permissions', ['admin.services.typeofmassage.index']);
}
//end payment
})->filter(function ($item) {
//return true for developer
if ($this->auth->check() && $this->auth->user()->roles->pluck('slug')[0] == 'developer') return true;
// return true for salon user
// if ($this->auth->check() && $this->auth->user()->is('salon')) return true;
//for others roles, check permission access
return ($this->auth->check() && $this->auth->user()->can($item->data('permissions')));
});
// Ensure menu_left is always shared with views (Lavary shares internally, but explicit share guarantees availability)
View::share('menu_left', Menu::get('menu_left'));
// Menu For Salon user
if ($this->auth->check() && $this->auth->user()->is('salon')) {
//create sidebar menu
Menu::make('left', function ($menu) {
// $menu->add('Dashboard','javascript:;')->data(array('permissions'=> ['dashboard','admin.schedules.bo.index','admin.testimonials.index','admin.faq.index','admin.banners.index']))->data('icon','icon icon-home');
//Website
// $website = $menu->add('Website', 'javascript:;')->data('icon','fa fa-globe')->data('permissions', ['admin.schedules.bo.index']);
// $website->add('Pages', route('admin.pages.index'))->data(array('permissions'=> ['admin.pages.index']))->data('icon','fa fa-files-o');
// $website->add('Events', route('admin.events.index'))->data(array('permissions'=> ['admin.events.index']))->data('icon','fa fa-bullhorn');
// $website->add('Testimonials', route('admin.testimonials.index'))->data(array('permissions'=> ['admin.testimonials.index']))->data('icon','icon icon-speech');
// $website->add('Faq', route('admin.faq.index'))->data(array('permissions'=> ['admin.faq.index']))->data('icon','icon icon-question');
// $website->add('Banners', route('admin.banners.index'))->data(array('permissions'=> ['admin.banners.index']))->data('icon','fa fa-file-image-o');
// $website->add('Contact Forms', route('admin.contactform.index'))->data(array('permissions'=> ['admin.contactform.index']))->data('icon','icon icon-note');
// $blog = $website->add('Blog', 'javascript:;')->data(array('permissions'=> ['admin.blog.categories.index','admin.blog.posts.index']))->data('icon','icon icon-book-open');
// $blog->add('Posts', route('admin.blog.posts.index'))->data(array('permissions'=> ['admin.blog.posts.index']))->data('icon','icon icon-note');
// $blog->add('Categories', route('admin.blog.categories.index'))->data(array('permissions'=> ['admin.blog.categories.index']))->data('icon','icon icon-list');
//Recuitment jobs
// $jobs = $menu->add('Recuitment Jobs', 'javascript:;')->data('icon','icon icon-briefcase')->data('permissions', ['admin.zenjobs.index']);
// $jobs->add('Jobs', route('admin.zenjobs.index'))->data(array('permissions'=> ['admin.zenjobs.index']))->data('icon','icon icon-briefcase');
// $jobs->add('Jobs applications', route('admin.zenjobsform.index'))->data(array('permissions'=> ['admin.zenjobsform.index']))->data('icon','icon icon-user-following');
//Schedules
if (Module::isEnabled('schedules')) {
$schedules = $menu->add('Schedules', 'javascript:;')->data('icon', 'icon icon-earphones-alt')->data('permissions', ['admin.schedules.bo.index']);
$schedules->add('Bookings', array('route' => 'admin.schedules.bookings.index'))->data('icon', 'icon icon-basket-loaded')->data('permissions', ['admin.schedules.bo.index']);
$schedules->add('Working days', array('route' => 'admin.schedules.bo.index'))->data('icon', 'icon icon-calendar')->data('permissions', ['admin.schedules.bo.index']);
$schedules->add('Holidays', array('route' => 'admin.schedules.daysoff.index'))->data('icon', 'icon icon-cup')->data('permissions', ['admin.schedules.daysoff.index']);
// $schedules->add('Massage table restriction', array('route' => 'admin.schedules.table.index'))->data('icon','fa fa-cogs')->data('permissions', ['admin.schedules.table.index']);
}
//end schedules
//Services
// if (Module::isEnabled('services'))
// {
// $services = $menu->add('Services', 'javascript:;')->data('icon','icon icon-bag')->data('permissions', ['admin.services.bo.index']);
// $services->add('Type of Treatment', array('route' => 'admin.services.typeofmassage.index'))->data('icon','icon icon-layers')->data('permissions', ['admin.services.typeofmassage.index']);
// $services->add('Massage Duration', array('route' => 'admin.services.duration.index'))->data('icon','icon icon-clock')->data('permissions', ['admin.services.duration.index']);
// }
//end services
// Salon Services
if (Module::isEnabled('services')) {
$services = $menu->add('Services', 'javascript:;')->data('icon', 'icon icon-bag')->data('permissions', ['admin.services.bo.index']);
$services->add('Type of Services', array('route' => 'admin.services.typeofsalontreatment.index'))->data('icon', 'icon icon-layers')->data('permissions', ['admin.services.typeofmassage.index']);
// $services->add('Salon Treatments', array('route' => 'admin.services.salonduration.index'))->data('icon','icon icon-clock')->data('permissions', ['admin.services.salonduration.index']);
} //end services
//Vouchers
// if (Module::isEnabled('services'))
// {
// $vouchers = $menu->add('Vouchers', 'javascript:;')->data('icon','fa fa-ticket')->data('permissions', ['admin.vouchers.packages.index']);
// $vouchers->add('Generated codes', array('route' => 'admin.vouchers.codes.index'))->data('icon','fa fa-ticket')->data('permissions', ['admin.vouchers.codes.index']);
// $vouchers->add('Offers', array('route' => 'admin.vouchers.offers.index'))->data('icon','icon icon-present')->data('permissions', ['admin.vouchers.offers.index']);
// $vouchers->add('Gifts', array('route' => 'admin.vouchers.packages.index'))->data('icon','icon icon-present')->data('permissions', ['admin.vouchers.packages.index']);
// $vouchers->add('General vouchers', array('route' => 'admin.vouchers.general.index'))->data('icon','fa fa-barcode')->data('permissions', ['admin.vouchers.general.index']);
// }
//end vouchers
//Corporate Clients&Events
if (Module::isEnabled('corporate')) {
$corporate = $menu->add('Companies', 'javascript:;')->data('icon', 'icon icon-diamond')->data('permissions', ['admin.accounts.companies.index', 'admin.accounts.seriesdoc.index']);
$corporate->add('Invoices', array('route' => 'admin.corporate.events.index'))->data('icon', 'fa fa-bullhorn')->data('permissions', ['admin.corporate.events.index']);
$corporate->add('Clients', array('route' => 'admin.corporate.companies.index'))->data('icon', 'fa fa-building')->data('permissions', ['admin.corporate.companies.index']);
// $corporate->add('Website Forms', route('admin.corporateform.index'))->data(array('permissions'=> ['admin.corporateform.index']))->data('icon','icon icon-note');
}
//end users
// Invoices
if (Module::isEnabled('invoices')) {
$invoices = $menu->add('Invoices', 'javascript:')->data('icon', 'icon icon-docs')->data('permissions', ['admin.invoices.index', 'admin.invoices.bookings.index']);
$invoices->add('Invoices', array('route' => 'admin.invoices.index'))->data('icon', 'icon icon-docs')->data('permissions', ['admin.invoices.index']);
$invoices = $invoices->add('Create Invoice', array('route' => 'admin.invoices.bookings.index'))->data('icon', 'icon icon-pencil')->data('permissions', ['admin.invoices.bookings.index']);
}
// end invoices
//Postcodes
// if (Module::isEnabled('postcodes'))
// {
// $postcodes = $menu->add('Postcodes', 'javascript:;')->data('icon','icon icon-directions')->data('permissions', ['admin.areas.transport.index']);
// $postcodes->add('London postcodes', array('route' => 'admin.areas.postcode.index'))->data('icon','icon icon-directions')->data('permissions', ['admin.areas.postcode.index']);
// $postcodes->add('Cost transport', array('route' => 'admin.areas.transport.index'))->data('icon','fa fa-gbp')->data('permissions', ['admin.areas.transport.index']);
// }
//end services
//salon Management
if (Module::isEnabled('users')) {
$users = $menu->add('Management', 'javascript:;')->data('icon', 'icon icon-users')->data('permissions', ['admin.services.bo.index']);
$users->add('Management', array('url' => 'admin/users/salon/edit/' . Auth::user()->id))->data('icon', 'icon icon-users')->data('permissions', ['admin.users.salon.index']);
// $users->add('Therapists', array('route' => 'admin.users.therapists.index'))->data('icon','icon icon-users')->data('permissions', ['admin.users.therapists.index']);
// $users->add('Gallery', array('route' => 'admin.users.gallery.index'))->data('icon','fa fa-files-o');
} //end salon
//Users
if (Module::isEnabled('users')) {
$users = $menu->add('Users', 'javascript:;')->data('icon', 'icon icon-users')->data('permissions', ['admin.services.bo.index']);
// $users->add('Salon Management'.Auth::user()->id, array('url' => 'admin/users/salon/edit/'.Auth::user()->id))->data('icon','icon icon-users')->data('permissions', ['admin.users.salon.index']);
$users->add('Service Providers', array('route' => 'admin.users.therapists.index'))->data('icon', 'icon icon-users')->data('permissions', ['admin.users.therapists.index']);
// $users->add('Gallery', array('route' => 'admin.users.gallery.index'))->data('icon','fa fa-files-o');
} //end users
if (Module::isEnabled('services')) {
$services = $menu->add('Venue Query', 'javascript:;')->data('icon', 'icon icon-bag')->data('permissions', ['admin.plan.venuequeryindex']);
// $services->add('Subscription Query', array('route' => 'admin.plan.subscriptionqueryindex'))->data('icon','icon icon-layers')->data('permissions', ['admin.services.typeofmassage.index']);
$services->add('Venue Query', array('route' => 'admin.plan.venuequeryindex'))->data('icon', 'icon icon-layers')->data('permissions', ['admin.services.typeofmassage.index']);
// $services->add('Massage Duration', array('route' => 'admin.services.duration.index'))->data('icon','icon icon-clock')->data('permissions', ['admin.services.duration.index']);
} //end inquiry
if (Module::isEnabled('services')) {
$services = $menu->add('Reviews', 'javascript:;')->data('icon', 'icon icon-bag')->data('permissions', ['admin.plan.subscriptionqueryindex']);
$services->add('Reiews', array('route' => 'admin.reviews.index'))->data('icon', 'icon icon-layers')->data('permissions', ['admin.services.typeofmassage.index']);
} //end inquiry
//Accounts
if (Module::isEnabled('accounts')) {
$users = $menu->add('Accounts', 'javascript:;')->data('icon', 'icon icon-globe')->data('permissions', ['admin.accounts.companies.index', 'admin.accounts.seriesdoc.index']);
$users->add('Companies', array('route' => 'admin.accounts.companies.index'))->data('icon', 'fa fa-building')->data('permissions', ['admin.accounts.companies.index']);
$users->add('New Companies', array('route' => 'admin.accounts.seriesdoc.index'))->data('icon', 'icon icon-layers')->data('permissions', ['admin.accounts.seriesdoc.index']);
} //end users
})->filter(function ($item) {
//return true for developer
if ($this->auth->check() && $this->auth->user()->is('developer')) return true;
// return true for salon user
if ($this->auth->check() && $this->auth->user()->is('salon')) return true;
//for others roles, check permission access
// return ($this->auth->check() && $this->auth->user()->canOne($item->data('permissions')));
});
}
return $next($request);
}
}