سلام
در واقع من دو نقش برای هر کاربر انتخاب کردم یعنی ادمین و کاربر معمولی.
کسانی که ریجستر می کنن بصورت پیش فرض کاربر معمولی هستن و دو سه تا کاربر رو هم خودم دستی ادمین کردم. حالا می خوام کاری بکنم که اگه کاربر لاگین کرد و کاربر معمولی بود در صفحه Home باقی بمونه و اگر کاربری که ادمین هستش لاگین کرد به صفحه ادمین بره که اونجا بتونه قسمت بک اند رو مدیریت کنه.
کسی می تونه کمک کنه به چکاری باید بکنم یا از چه متدی استفاده کنم.
نمی دونم که این شرط رو کجا و به چه صورتی قرار بدم
ممنون می شم کمکی بکنین
سلام برای انجام دادن این کار باید مسیر زیر را طی کنید:
۱) ابتدا یک Middleware به نام checkAdmin با دستور زیر ایجاد کنید:
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
class checkAdmin
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle(Request $request, Closure $next)
{
if ( Auth::check() && Auth::user()->superAdmin() )
{
return redirect->to('Your/Admin/Path'); // به جای عبارت Your Admin Path آدرس موردنظر را بدهید
}else{
return redirect->to('Your/Home/Path'); // به جای عبارت Your Home Path آدرس موردنظر را بدهید
}
}
}
۲) این Middleware را به فایل Kernel.php و در بخش $middlewareGroups و قسمت web اضافه کنید.
۳) داخل فایل checkAdmin بررسی کنید که کاربر موردنظر مدیر هست یا خیر که برای انجام این کار باید در مدل زیر یک تابع به نام superAdmin بنویسید تا فرآیند بررسی کاربر ادمین را با توجه به نقش مدیریت انجام دهد:
public function superAdmin()
{
foreach ($this->roles as $role){
if($role->title == 'مدیر کل'){
return true;
}
}
return false;
}
در این حالت اگر کاربر ادمین بود به صفحه ادمین و در غیراینصورت به صفحه اصلی هدایت می شود.
به جمع هزاران کاربر اینستاگرامی روکسو بپیوندید.