• 1403/04/30

دسترسی ها - پیاده سازی گیت (جلسه 398) :

استاد سلام

تشکر فرآوان برای دوره خوبتون

من در قسمت دسترسی ها میخواهم از permission ها به صورت آرایه استفاده کنم.

به طور مثال یک آیتم را مثل کد زیر چند permission را چک کنم که آیا کاربر امکانش را دارد یا نه ولی با توجه به آموزش شما فقط مورد اول را بررسی می کند و بعدی ها را بررسی نمی کند. 

لطفا راهنمایی کنید که چکار کنم که امکانش وجود داشته باشد.

این موضوع را برای role ها درست کردین ولی برای permission ها را متوجه نشدم چکار کنم.

با تشکر

@can('upload-media','editor','admin')
	<a href="#">
		مجموعه ها
	</a>
@endcan
  • 1403/04/30
  • ساعت 20:56

سلام وقت بخیر

 

زنده‌ باشید

 

لینک زیر رو مطالعه بفرمایید

https://stackoverflow.com/questions/51886986/how-to-check-multiple-permission-condition-in-if-statement-using-laravel-spatie

 


  • 1403/04/30
  • ساعت 22:38

ممنون از شما 

یعنی باید به شکل زیر اینجوری که گفته عمل کنم

@if (auth()->user()->can('view-users') || auth()->user()->can('upload-media') || auth()->user()->roles('contributor'))

حالا اگر به طور مثال اگر 20 تا permission هم بخواهم چک کنم باید یکی یکی رو قرار بدم تو شرط؟

دلیل این کارم اینه که یک بار تمام permission ها را در تمام قسمت های سایت تعریف کنم و کاربران بر اساس role ها یکسری از امکانات را استفاده کنن

در controller هم به این صورت ؟ 

if ($user->can('view-users') || $user->can('upload-media') || $user->hasRole('contributor')) {
            $postCategories = PostCategory::orderBy('created_at', 'ASC')->get();

            return view('admin.content.category.index', compact('postCategories'));
        } else {
            abort(403, 'Unauthorized');
        }

 


  • 1403/05/01
  • ساعت 14:34

میتونید بصورت ارایه تعریف کنید

[ ]


  • 1403/05/01
  • ساعت 18:32

استاد متاسفانه به صورت آرایه هم قبول نمیکنه و فقط اولی را میخونه.

به صورت زیر از gate ها استفاده کردم. نمیدونم صحیح است یا نه 

    Gate::define('view-or-upload', function ($user) {
        return $user->can('view-users') || $user->can('upload-media');
    });

  • 1403/05/01
  • ساعت 21:48

اون لینک بالا که فرستادم ببینید حالت ارایه ایی فرستاده


logo-enamadlogo-samandehi