استاد سلام
تشکر فرآوان برای دوره خوبتون
من در قسمت دسترسی ها میخواهم از permission ها به صورت آرایه استفاده کنم.
به طور مثال یک آیتم را مثل کد زیر چند permission را چک کنم که آیا کاربر امکانش را دارد یا نه ولی با توجه به آموزش شما فقط مورد اول را بررسی می کند و بعدی ها را بررسی نمی کند.
لطفا راهنمایی کنید که چکار کنم که امکانش وجود داشته باشد.
این موضوع را برای role ها درست کردین ولی برای permission ها را متوجه نشدم چکار کنم.
با تشکر
@can('upload-media','editor','admin')
<a href="#">
مجموعه ها
</a>
@endcan
سلام وقت بخیر
زنده باشید
لینک زیر رو مطالعه بفرمایید
https://stackoverflow.com/questions/51886986/how-to-check-multiple-permission-condition-in-if-statement-using-laravel-spatie
ممنون از شما
یعنی باید به شکل زیر اینجوری که گفته عمل کنم
@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');
}
میتونید بصورت ارایه تعریف کنید
[ ]
استاد متاسفانه به صورت آرایه هم قبول نمیکنه و فقط اولی را میخونه.
به صورت زیر از gate ها استفاده کردم. نمیدونم صحیح است یا نه
Gate::define('view-or-upload', function ($user) {
return $user->can('view-users') || $user->can('upload-media');
});
اون لینک بالا که فرستادم ببینید حالت ارایه ایی فرستاده