php - laravel how to create page restriction -
please tell me how restrict page using laravel,
have 3 users.
1. admin, 2. client, 3. partner
want if admin logged in open only- admin.index page
, if client logged in open only- client.index page
i used in route.php following code-
route::group(array('before' => 'role'), function(){ route::resource('admin','admincontroller@index'); route::resource('client','clientcontroller@index'); route::resource('partner','partnercontroller@index'); });
using above code if no user login it's coming properly,
, suppose if admin logged in, page redirect admincontroller
but,
if hard coded (url) hit clientcontroller or partnercontroller
http://localhost/laravel-login/public/client
client page coming.
please tell me how avoid these
sorry english..
you may use different route filters each route , create individual filters, example:
route::group(array('before' => 'auth'), function() { route::resource('admin','admincontroller@index'); route::resource('client','clientcontroller@index'); route::resource('partner','partnercontroller@index'); });
in each controller create __construct
method , add filter like:
public function __construct() { // in admincontroller $this->beforefilter(function() { if(auth::user()->role->name != 'admin') return redirect::to('/'); // home }); }
same way declare other filters in other controllers:
public function __construct() { // in clientcontroller $this->beforefilter(function() { if(auth::user()->role->name != 'client') return redirect::to('/'); // home }); }
and on. check more on laravel website controller filtering.
Comments
Post a Comment