Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Route::group(['middleware' => 'auth', 'prefix'=>'message'], function() {
...
});
Есть два типа зарегистрированных существ таблице users. Поле is_admin : 0 или 1.
Допустим, я хочу ать доступ к /message только зарегитсрированным. Код выше работает.
Как мне теперь сделать доступ к /admin только юзерам с is_admin=1?
Изменено Max_G (03.11.2015 19:06:39)
Не в сети
Придётся свой middleware написать и использовать его в роутах.
Такая же проблема. Нужно если юзер не админ, бросить на 404. Если админ - велкам в раздел ))
В четвертой версии это делал, с пятой возникают вопросы (
Не в сети
Какие вопросы?
в таблицу users добавить поле isAdmin,
в модель User добавить
public function isAdmin() {
if ($this->isAdmin == 1)
return true;
}
в middleware с алиасом auth перед
if ($this->auth->guest() )
добавить
if ($this->auth->check())
{
if ( ! $this->auth->user()->isAdmin() ) {
Auth::logout();
return redirect()->guest('/куда-надо');
}
}
как-то так)
Изменено avpet (04.12.2015 08:10:09)
Не в сети
в middleware с алиасом auth перед
if ($this->auth->guest() )
добавить
Нубский вопрос... Где этот скрипт искать?)))))
Не в сети
Нубский вопрос... Где этот скрипт искать?)))))
Опасный )). App\Http\Middleware\Authenticate.php
Лично я бы для этой задачи создал свой middleware
По шагам:
1) php artisan make:middleware AdminMiddleware
2) Там уже делаешь свою проверку на админа(это уже твои заморочки как ты его вычисляешь), в моём примере через пакет Zizaco/entrust:
namespace App\Http\Middleware;
use Closure;
class AdminMiddleware
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
if (!\Auth::user()->hasRole(['admin']))
{
return redirect()->route('404');
}
return $next($request);
}
}
3) Добавляешь данный Middleware в app/Http/Kernel.php в поле $routeMiddleware:
'admin' => \App\Http\Middleware\AdminMiddleware::class,
4) Используешь его в роутах, пример:
Route::group(['middleware' => 'auth'], function(){
//тут роуты для которых нужна авторизация
Route::group(['middleware' => 'admin'], function(){
//тут роуты только для админа + авторизация
});
});
Arat пишет:Нубский вопрос... Где этот скрипт искать?)))))
Опасный )). App\Http\Middleware\Authenticate.php
Лично я бы для этой задачи создал свой middleware
Само собой свой , но проще объяснить на том что есть
Не в сети
Лично я бы для этой задачи создал свой middleware
По шагам:
Отлично! Спасибо! Вот теперь все ясно и заработало как нужно!
Не в сети
Страницы 1