optimized panel sidebar with acl

pull/44/head
A1Gard 2 months ago
parent f91986c4b7
commit 80c2973c28

@ -118,6 +118,19 @@ class User extends Authenticatable
} }
return $this->accesses()->where('route','LIKE','%.'.$name.'.%')->count() > 0; return $this->accesses()->where('route','LIKE','%.'.$name.'.%')->count() > 0;
} }
public function hasAnyAccesses($array){
if ($this->hasRole('SUSPENDED')){
return false;
}
if ($this->hasRole('admin') || $this->hasRole('developer')) {
return true;
}
foreach ($array as $access){
if ($this->hasAnyAccess($access)){
return true;
}
}
}
public function hasAccess($route){ public function hasAccess($route){
if ($this->hasRole('SUSPENDED')){ if ($this->hasRole('SUSPENDED')){

@ -6,12 +6,14 @@
<i class="ri-home-smile-fill"></i> <i class="ri-home-smile-fill"></i>
</a> </a>
</li> </li>
@if( auth()->user()->hasAnyAccesses(['customer','invoice','discount']) )
<li data-bs-toggle="tooltip" data-bs-placement="auto" data-bs-custom-class="custom-tooltip" <li data-bs-toggle="tooltip" data-bs-placement="auto" data-bs-custom-class="custom-tooltip"
data-bs-title="{{__("Shopping card")}}"> data-bs-title="{{__("Shopping card")}}">
<a href="#card"> <a href="#card">
<i class="ri-shopping-cart-line"></i> <i class="ri-shopping-cart-line"></i>
</a> </a>
<ul id="card"> <ul id="card">
@if( auth()->user()->hasAnyAccess( 'customer' ))
<li> <li>
<a href="{{route('admin.customer.index')}}"> <a href="{{route('admin.customer.index')}}">
<i class="ri-team-fill"></i> <i class="ri-team-fill"></i>
@ -19,205 +21,268 @@
{{__('Customers')}} {{__('Customers')}}
</a> </a>
</li> </li>
@endif
@if( auth()->user()->hasAnyAccess( 'invoice' ))
<li> <li>
<a> <a>
<i class="ri-file-list-3-fill"></i> <i class="ri-file-list-3-fill"></i>
{{__('Invoices')}} {{__('Invoices')}}
</a> </a>
</li> </li>
@endif
@if( auth()->user()->hasAnyAccess( 'discount' ))
<li> <li>
<a href="{{route('admin.discount.index')}}"> <a href="{{route('admin.discount.index')}}">
<i class="ri-percent-fill"></i> <i class="ri-percent-fill"></i>
{{__('Discounts')}} {{__('Discounts')}}
</a> </a>
</li> </li>
@endif
</ul> </ul>
</li> </li>
@endif
@if( auth()->user()->hasAnyAccesses(['product','category','prop','transport']) )
<li data-bs-toggle="tooltip" data-bs-placement="auto" data-bs-custom-class="custom-tooltip" <li data-bs-toggle="tooltip" data-bs-placement="auto" data-bs-custom-class="custom-tooltip"
data-bs-title="{{__("Catalog")}}"> data-bs-title="{{__("Catalog")}}">
<a href="#catalog"> <a href="#catalog">
<i class="ri-store-line"></i> <i class="ri-store-line"></i>
</a> </a>
<ul id="catalog"> <ul id="catalog">
@if( auth()->user()->hasAnyAccess( 'product' ))
<li> <li>
<a href="{{route('admin.product.index')}}"> <a href="{{route('admin.product.index')}}">
<i class="ri-vip-diamond-fill"></i> <i class="ri-vip-diamond-fill"></i>
{{__('Products')}} {{__('Products')}}
</a> </a>
</li> </li>
@endif
@if( auth()->user()->hasAnyAccess( 'category' ))
<li> <li>
<a href="{{route('admin.category.index')}}"> <a href="{{route('admin.category.index')}}">
<i class="ri-box-3-fill"></i> <i class="ri-box-3-fill"></i>
{{__('Categories')}} {{__('Categories')}}
</a> </a>
</li> </li>
@endif
@if( auth()->user()->hasAnyAccess( 'prop' ))
<li> <li>
<a href="{{route('admin.prop.index')}}"> <a href="{{route('admin.prop.index')}}">
<i class="ri-file-list-3-fill"></i> <i class="ri-file-list-3-fill"></i>
{{__("Properties meta")}} {{__("Properties meta")}}
</a> </a>
</li> </li>
@endif
@if( auth()->user()->hasAnyAccess( 'transport' ))
<li> <li>
<a href="{{ route('admin.transport.index') }}"> <a href="{{ route('admin.transport.index') }}">
<i class="ri-truck-fill"></i> <i class="ri-truck-fill"></i>
{{__('Transports')}} {{__('Transports')}}
</a> </a>
</li> </li>
@endif
</ul> </ul>
</li> </li>
@endif
@if( auth()->user()->hasAnyAccesses(['post','group','adv','gallery','clip','attachment']) )
<li data-bs-toggle="tooltip" data-bs-placement="auto" data-bs-custom-class="custom-tooltip" <li data-bs-toggle="tooltip" data-bs-placement="auto" data-bs-custom-class="custom-tooltip"
data-bs-title="{{__("Contents")}}"> data-bs-title="{{__("Contents")}}">
<a href="#contents"> <a href="#contents">
<i class="ri-pages-line"></i> <i class="ri-pages-line"></i>
</a> </a>
<ul id="contents"> <ul id="contents">
@if( auth()->user()->hasAnyAccess( 'post' ))
<li> <li>
<a href="{{route('admin.post.index')}}"> <a href="{{route('admin.post.index')}}">
<i class="ri-megaphone-fill"></i> <i class="ri-megaphone-fill"></i>
{{__('Post')}} {{__('Post')}}
</a> </a>
</li> </li>
@endif
@if( auth()->user()->hasAnyAccess( 'group' ))
<li> <li>
<a href="{{route('admin.group.index')}}"> <a href="{{route('admin.group.index')}}">
<i class="ri-book-3-fill"></i> <i class="ri-book-3-fill"></i>
{{__('Groups')}} {{__('Groups')}}
</a> </a>
</li> </li>
@endif
@if( auth()->user()->hasAnyAccess( 'adv' ))
<li> <li>
<a href="{{route('admin.adv.index')}}"> <a href="{{route('admin.adv.index')}}">
<i class="ri-threads-line"></i> <i class="ri-threads-line"></i>
{{__("Advertise")}} {{__("Advertise")}}
</a> </a>
</li> </li>
@endif
@if( auth()->user()->hasAnyAccess( 'gallery' ))
<li> <li>
<a href="{{route('admin.gallery.index')}}"> <a href="{{route('admin.gallery.index')}}">
<i class="ri-gallery-fill"></i> <i class="ri-gallery-fill"></i>
{{__("Galleries")}} {{__("Galleries")}}
</a> </a>
</li> </li>
@endif
@if( auth()->user()->hasAnyAccess( 'clip' ))
<li> <li>
<a href="{{route('admin.clip.index')}}"> <a href="{{route('admin.clip.index')}}">
<i class="ri-video-fill"></i> <i class="ri-video-fill"></i>
{{__("Video clips")}} {{__("Video clips")}}
</a> </a>
</li> </li>
@endif
@if( auth()->user()->hasAnyAccess( 'attachment' ))
<li> <li>
<a href="{{route('admin.attachment.index')}}"> <a href="{{route('admin.attachment.index')}}">
<i class="ri-attachment-2"></i> <i class="ri-attachment-2"></i>
{{__("Attachments")}} {{__("Attachments")}}
</a> </a>
</li> </li>
@endif
</ul> </ul>
</li> </li>
@endif
@if( auth()->user()->hasAnyAccesses(['menu','slider','gfx','area']) )
<li data-bs-toggle="tooltip" data-bs-placement="auto" data-bs-custom-class="custom-tooltip" <li data-bs-toggle="tooltip" data-bs-placement="auto" data-bs-custom-class="custom-tooltip"
data-bs-title="{{__("Theme")}}"> data-bs-title="{{__("Theme")}}">
<a href="#themes"> <a href="#themes">
<i class="ri-palette-line"></i> <i class="ri-palette-line"></i>
</a> </a>
<ul id="themes"> <ul id="themes">
@if( auth()->user()->hasAnyAccess( 'menu' ))
<li> <li>
<a href="{{route('admin.menu.index')}}"> <a href="{{route('admin.menu.index')}}">
<i class="ri-list-check"></i> <i class="ri-list-check"></i>
{{__("Menus")}} {{__("Menus")}}
</a> </a>
</li> </li>
@endif
@if( auth()->user()->hasAnyAccess( 'slider' ))
<li> <li>
<a href="{{route('admin.slider.index')}}"> <a href="{{route('admin.slider.index')}}">
<i class="ri-image-fill"></i> <i class="ri-image-fill"></i>
{{__("Slider")}} {{__("Slider")}}
</a> </a>
</li> </li>
@endif
@if( auth()->user()->hasAnyAccess( 'gfx' ))
<li> <li>
<a href="{{route('admin.gfx.index')}}"> <a href="{{route('admin.gfx.index')}}">
<i class="ri-color-filter-line"></i> <i class="ri-color-filter-line"></i>
{{__("Graphic")}} {{__("Graphic")}}
</a> </a>
</li> </li>
@endif
@if( auth()->user()->hasAnyAccess( 'area' ))
<li> <li>
<a href="{{route('admin.area.index')}}"> <a href="{{route('admin.area.index')}}">
<i class="ri-paint-brush-line"></i> <i class="ri-paint-brush-line"></i>
{{__("Area design")}} {{__("Area design")}}
</a> </a>
</li> </li>
@endif
</ul> </ul>
</li> </li>
@endif
@if( auth()->user()->hasAnyAccesses(['question','ticket','comment','contact']) )
<li data-bs-toggle="tooltip" data-bs-placement="auto" data-bs-custom-class="custom-tooltip" <li data-bs-toggle="tooltip" data-bs-placement="auto" data-bs-custom-class="custom-tooltip"
data-bs-title="{{__("Interaction")}}"> data-bs-title="{{__("Interaction")}}">
<a href="#interaction"> <a href="#interaction">
<i class="ri-chat-1-line"></i> <i class="ri-chat-1-line"></i>
</a> </a>
<ul id="interaction"> <ul id="interaction">
@if( auth()->user()->hasAnyAccess( 'question' ))
<li> <li>
<a href="{{route('admin.question.index')}}"> <a href="{{route('admin.question.index')}}">
<i class="ri-question-mark"></i> <i class="ri-question-mark"></i>
{{__('Questions')}} {{__('Questions')}}
</a> </a>
</li> </li>
@endif
@if( auth()->user()->hasAnyAccess( 'ticket' ))
<li> <li>
<a href="{{route('admin.ticket.index')}}"> <a href="{{route('admin.ticket.index')}}">
<i class="ri-mail-fill"></i> <i class="ri-mail-fill"></i>
{{__('Tickets')}} {{__('Tickets')}}
</a> </a>
</li> </li>
@endif
@if( auth()->user()->hasAnyAccess( 'comment' ))
<li> <li>
<a href="{{route('admin.comment.index')}}"> <a href="{{route('admin.comment.index')}}">
<i class="ri-chat-1-fill"></i> <i class="ri-chat-1-fill"></i>
{{__('Comments')}} {{__('Comments')}}
</a> </a>
</li> </li>
@endif
@if( auth()->user()->hasAnyAccess( 'contact' ))
<li> <li>
<a href="{{route('admin.contact.index')}}"> <a href="{{route('admin.contact.index')}}">
<i class="ri-mail-unread-fill"></i> <i class="ri-mail-unread-fill"></i>
{{__("Contact us")}} {{__("Contact us")}}
</a> </a>
</li> </li>
@endif
</ul> </ul>
</li> </li>
@endif
@if( auth()->user()->hasAnyAccesses(['user','state','city','report','adminlog','guestlog']) )
<li data-bs-toggle="tooltip" data-bs-placement="auto" data-bs-custom-class="custom-tooltip" <li data-bs-toggle="tooltip" data-bs-placement="auto" data-bs-custom-class="custom-tooltip"
data-bs-title="{{__("Managing")}}"> data-bs-title="{{__("Managing")}}">
<a href="#manage"> <a href="#manage">
<i class="ri-pie-chart-line"></i> <i class="ri-pie-chart-line"></i>
</a> </a>
<ul id="manage"> <ul id="manage">
@if( auth()->user()->hasAnyAccess( 'user' ))
<li> <li>
<a href="{{route('admin.user.index')}}"> <a href="{{route('admin.user.index')}}">
<i class="ri-user-line"></i> <i class="ri-user-line"></i>
{{__("Users")}} {{__("Users")}}
</a> </a>
</li> </li>
@endif
@if( auth()->user()->hasAnyAccess( 'state' ))
<li> <li>
<a href="{{route('admin.state.index')}}"> <a href="{{route('admin.state.index')}}">
<i class="ri-map-line"></i> <i class="ri-map-line"></i>
{{__("States")}} {{__("States")}}
</a> </a>
</li> </li>
@endif
@if( auth()->user()->hasAnyAccess( 'city' ))
<li> <li>
<a href="{{route('admin.city.index')}}"> <a href="{{route('admin.city.index')}}">
<i class="ri-map-2-line"></i> <i class="ri-map-2-line"></i>
{{__("City")}} {{__("City")}}
</a> </a>
</li> </li>
@endif
@if( auth()->user()->hasAnyAccess( 'report' ))
<li> <li>
<a href=""> <a href="">
<i class="ri-bar-chart-2-line"></i> <i class="ri-bar-chart-2-line"></i>
{{__("Reports")}} {{__("Reports")}}
</a> </a>
</li> </li>
@endif
@if( auth()->user()->hasAnyAccess( 'adminlog' ))
<li> <li>
<a href="{{route('admin.adminlog.index')}}"> <a href="{{route('admin.adminlog.index')}}">
<i class="ri-list-check-3"></i> <i class="ri-list-check-3"></i>
{{__('Logs of admins')}} {{__('Logs of admins')}}
</a> </a>
</li> </li>
@endif
@if( auth()->user()->hasAnyAccess( 'guestlog' ))
<li> <li>
<a href=""> <a href="">
<i class="ri-list-check-3"></i> <i class="ri-list-check-3"></i>
{{__('Logs of guests')}} {{__('Logs of guests')}}
</a> </a>
</li> </li>
@endif
@if(auth()->user()->hasRole('developer') && config('app.xlang.active')) @if(auth()->user()->hasRole('developer') && config('app.xlang.active'))
<li> <li>
<a href="{{ route('admin.lang.index') }}"> <a href="{{ route('admin.lang.index') }}">
@ -228,11 +293,14 @@
@endif @endif
</ul> </ul>
</li> </li>
@endif
@if( auth()->user()->hasAnyAccess( 'setting' ))
<li data-bs-toggle="tooltip" data-bs-placement="auto" data-bs-custom-class="custom-tooltip" <li data-bs-toggle="tooltip" data-bs-placement="auto" data-bs-custom-class="custom-tooltip"
data-bs-title="{{__("Setting")}}"> data-bs-title="{{__("Setting")}}">
<a href="{{route('admin.setting.index')}}"> <a href="{{route('admin.setting.index')}}">
<i class="ri-settings-4-line"></i> <i class="ri-settings-4-line"></i>
</a> </a>
</li> </li>
@endif
</ul> </ul>
</nav> </nav>

Loading…
Cancel
Save