رایموند
3 سال پیش توسط رایموند مطرح شد
0 پاسخ

درباره دو روش دسترسی لاراول

درود دوستان...
من پروژه وبلاگ و آموزشی از لاراول Breeze استفاده کردم.

اما دو نوع پیاده سازی دسترسی ها داریم:
۱. دسترسی اول اینکه در users جدول role پیش فرض user داریم که کاربری که عضو میشه به صورت کاربر عادی هست.
و بخوام بقیه دسترسی مثل مدیر و ویرایشگر یا پشتیبانی اضافه کنم به صورت select انجام می دهم و محدودیت صفحات به این صورت هست:

@if(auth()->user()->role === 'admin' || auth()->user()->role === 'editor')
     <div class="accordion-item">
          <h2 class="accordion-header">
          <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#4" aria-expanded="false" aria-controls="flush-collapseThree">
               نوشته ها
          </button>
          </h2>
          <div id="4" class="accordion-collapse collapse" data-bs-parent="#accordionFlushExample">
          <div class="accordion-body">
               <ul>
                    <li><a href="{{ route('posts.index') }}" class="text-decoration-none text-dark">مدیریت نوشته ها</a></li>
                    <li><a href="{{ route('posts.create') }}" class="text-decoration-none text-dark">افزودن نوشته</a></li>
               </ul>
          </div>
          </div>
     </div>
@endif

دومی دسترسی اینه ما براش قسمت صفحه دسترسی و مقام ها تعریف می کنیم و هر دو اطلاعات دسترسی اضافه می کنیم مثل:
برای دسترسی :

index-page | صفحه اصلی
index-users | صفحه کاربران
Show-users | مشاهده کاربران
برای مقام ها :

Support | پشتیبانی
Editor | ویرایشگر

برای محدود سازی صفحات به روش به کار می بریم:

@can('show-users')
     <li>
          <button class="list-heading"><h6><i class="fa-light fa-users ms-2"></i> کاربران </h6></button>
          <div class="list-text">
          <ul class="mt-3 mb-3">
               <li><a href="{{ route('users.index') }}" class="text-decoration-none text-dark">لیست کاربران</a></li>
               <li><a href="{{ route('users.create') }}" class="text-decoration-none text-dark">ایجاد کاربر</a></li>
          </ul>
          </div>
     </li>
@endcan

همچون مسدودی سازی صفحه به روش زیر:

public function construct()  
{  
     $this->middleware('can:create-users')->only('create');  
     $this->middleware('can:delete-users')->only('destroy');  
     $this->middleware('can:edits-users')->only('edit', 'update');  
     $this->middleware('can:show-users')->only('index');  
}

این دو روشی گفتم کدوم یک بهتر است و عملکرد خوبی داره؟