جداسازی مسیر لاگین کاربر و مدیریت در لاراول

سلام 

در واقع من دو نقش برای هر کاربر انتخاب کردم یعنی ادمین  و کاربر معمولی.

کسانی که ریجستر می کنن بصورت پیش فرض کاربر معمولی هستن و دو سه تا کاربر رو هم خودم دستی ادمین کردم. حالا می خوام کاری بکنم که اگه کاربر لاگین کرد و کاربر معمولی بود در صفحه Home باقی بمونه و اگر کاربری که ادمین هستش لاگین کرد به صفحه ادمین بره که اونجا بتونه قسمت بک اند رو مدیریت کنه.

کسی می تونه کمک کنه به چکاری باید بکنم یا از چه متدی استفاده کنم.

نمی دونم که این شرط رو کجا و به چه صورتی قرار بدم

ممنون می شم کمکی بکنین

برچسب ها:
پرسیده شده در: 3 سال قبل
آمار بازدید: 1184
0

سلام برای انجام دادن این کار باید مسیر زیر را طی کنید:

۱) ابتدا یک 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;
    }

در این حالت اگر کاربر ادمین بود به صفحه ادمین و در غیراینصورت به صفحه اصلی هدایت می شود.

ارسال شده در: 3 سال قبل
masoudsalehi (1725)
بیش از ۲ سال عضویت در روکسو بیش از ۲ سال عضویت در روکسو دارای 1000 کارما دارای 1000 کارما نظرات دریافتی:‌ بیش از 50 نظرات دریافتی:‌ بیش از 50 دارای 25 پاسخ صحیح دارای 25 پاسخ صحیح ارسال کننده پاسخ با 25 رای ارسال کننده پاسخ با 25 رای
جهت ارسال پاسخ ابتدا عضو سایت شوید.