Merhaba laravelde çok yeniyim. Bir web sitesi tasarlamaya çalışıyorum. User tablomda authority adlı bir sütun oluşturdum. 0=kullanıcı, 1=admin, 2=editor şeklinde. Admin girişi yapılırken, sistemin giriş yapmaya çalışan kullanıcının authority sine bakarak kontrol etmesini ve eğer 1 ise admin sayfasına, 2 ise editör sayfasına yönlendirmesini istiyorum. route kısmını şu şekilde yaptım:
Route::filter('admin-roles', function()
{
if (Input::get('authority') == 1)
{ return Redirect::to('home'); }
});
Route::filter('editor-roles', function()
{
if (Input::get('authority') == 2)
{ return Redirect::to('editor'); }
});
Route::get('/auth/login', array('before' => 'admin-roles', function()
{
return 'siz admin degilsiniz';
}));
Route::get('/auth/login', array('before' => 'editor-roles', function()
{
return 'siz editor degilsiniz';
}));
Fakat doğru çalışmıyor. Sadece kullanıcının admin olup olmadığını kontrol ediyor. Editor olup olmadığını kontrol etmiyor. Acaba bu kontrol işlemini Middleware/Authenticate.php kısmında mı yapmam gerekiyor? O kısım da şöyle:
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Contracts\Auth\Guard;
class Authenticate {
protected $auth;
public function __construct(Guard $auth)
{
$this->auth = $auth;
}
public function handle($request, Closure $next)
{
if ($this->auth->guest()) {
if ($request->ajax()) {
return response('Unauthorized.', 401);
} else {
return redirect()->guest('auth/login');
}
}
return $next($request);
}
}
Umarım derdimi doğru şekilde anlatabilmişimdir. Yardımcı olabilirseniz çok sevinirim.