我正在为客户构建一个相当广泛的应用程序,我将不得不产生某种组权限控制。我决定选择 Cartalyst 和他们的Sentry套餐。
到目前为止,一切都很好!
现在我遇到的问题是,检测用户组权限的最佳方法是什么,因为不止一个,所以我不能只使用一个过滤器并完成它。
例如,我会做这样的事情:
对于需要管理员级别访问权限的页面
Route::group(array('before' => 'is_admin'), function()
{
Route::get('admin', array('as'=>'admin', 'uses'=>'admin@index'));
// Other methods that require admin-level access
});
对于需要更多级别访问的页面等等..
Route::group(array('before' => 'is_moderator'), function()
{
Route::get('orodja/plosca', array('as'=>'moderator', 'uses'=>'moderator@index'));
// Other methods that require moderator-level access
});
我在使用这种方法时遇到的问题是,我需要为每个控制器操作定义一个新路由,这对我来说确实不是最佳实践。
接下来,我考虑注册所有控制器Controller::detect()
并使它们成为 REST-full,但我这里的问题是,我只能将过滤器应用于控制器的构造函数方法,而不是单个操作。如果我在一个控制器中有不同访问级别的方法怎么办..?
所以我的问题是:解决这个问题的最佳方法是什么,有没有办法将动作过滤器应用于单个控制器方法,而不是控制器构造函数。
谢谢和对不起我的英语!