Laravel по-русски
      
      
    Русское сообщество разработки на 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