Ограничить URL для конкретной роли пользователя laravel - PullRequest
0 голосов
/ 16 октября 2018

У меня 3 роли пользователя: администратор, клиент и сотрудник.

Каждая роль будет перенаправлена ​​на определенную панель мониторинга после входа в систему, например: - Администратор: website.com/admin - Клиент: website.com/ customer - Employee: website.com/employee

В настоящее время доступ ко всем можно получить, пройдя по этим URL-адресам независимо от того, какую роль пользователя я использую.

Какой самый простой способограничить клиента от открытия панелей администратора и сотрудников?И запретить сотрудникам открывать панели администратора и клиентов?

Laravel версия 5.2.45 PHP версия 7.2 Я использую провайдера виртуального хостинга.Спасибо

Ответы [ 2 ]

0 голосов
/ 17 октября 2018

Что бы я сделал в вашем случае, я бы создал вспомогательную функцию в вашей пользовательской модели, например:

function isAdmin(){
  return $this->role == 0;
}

Я бы создал одну для каждой роли, а затем вы можете использовать эти функции в контроллере вида дляпример:

if(auth()->user()->isAdmin()){
  return view('admin.dashboard');
}
else{
  return view('guest.dashboard');
}

И, наконец, если вы хотите создать промежуточное ПО для управления доступом к определенным маршрутам или контроллерам:

php artisan make:middleware AdminUser

, а затем в функции дескриптора:

public function handle($request, Closure $next)
    {
        if (!auth()->user()->isAdmin) {
            return redirect('home');
        }

        return $next($request);
    }
0 голосов
/ 16 октября 2018

попробуйте прочитать это, очень полезно

https://laravel.com/docs/5.7/middleware#assigning-middleware-to-routes

вы можете назначить существующие промежуточные программы, такие как auth или auth.basic

или передать свою собственную роль проверкиКласс как этот

use App\Http\Middleware\CheckAge;

Route::get('admin/profile', function () {
    //
})->middleware(CheckAge::class);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...