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

Loading…
Cancel
Save