2014-09-24 65 views
0

使用Laravel 4和Sentry。我有一个经理和管理员可以访问的CRUD管理系统。我希望经理能够访问除DELETE以外的所有CRUD操作。我知道我可以添加一条线如如何在laravel中使用哨兵限制访问删除

@if (Sentry::check()) 

在我看来确保用户登录但不知道如何检查他们是否是管理员。

我有以下的过滤器

Route::filter('auth.admin', function() 
{ 

$user = Sentry::getUser(); 
$admin = Sentry::findGroupByName('Admins'); 

if (!$user->inGroup($admin)) return Redirect::to('admin/login'); 
}); 

回答

1

简单的方法:

if (Sentry::getUser()->isSuperUser()) 

// or 
if (Sentry::hasPermission('superuser')) // or admin or whatever permission you want 

或excplicitly:

if (Sentry::hasPermission('delete')) 
+0

你是一个明星。我更新了组播表的种子,以便我拥有超级用户并可以使用前两个选项。哨兵:: getGroupProvider() - >创建(阵列( \t '名称'=> '用户', \t '权限'=>数组( \t '管理员'=> 0, \t '用户'=> 1, \t'superuser'=> 0, \t))); \t \t哨兵:: getGroupProvider() - >创建(阵列( \t '名称'=> '管理员', \t '权限'=>数组( \t '管理员'=> 1, \t '用户' => 1, \t'superuser'=> 1, \t))); – 2014-09-25 08:08:20