رایموند
10 ماه پیش توسط رایموند مطرح شد
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');  
}

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


ثبت پرسش جدید

به همدیگه کمک کنیم

به رایموند کمک کنید تا مشکل خودش را حل کند؛ این‌طور می‌توانیم با هم پیشرفت کنیم.

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام