我有一个具有许多用户角色的应用程序。与Admin
,Manager
等相同。
在某些情况下,Manager
和Admin
都有相同的权限来查看/编辑网页。
在route.php
我创建了一个仅供管理员访问的过滤器组。
//filter.php
Route::filter('admin', function()
{
if (Auth::guest() or ! Auth::user()->isAdmin()) {
return 'Not Authorized';
}
});
//route.php
Route::group(['before' => 'admin'], function(){
//Some routes.....
});
现在,我想通过查看userId
和courseId
来检查是否允许用户查看该页面。如何在filter.php
中获取这些值?
我有一个功能,可以检查用户是否有权使用该页面。但它需要传递两个变量(Atleast one variable,courseId
)
public static function isAllowed($userId, $courseId){
//Some conditions.
}
我该怎么做?
答案 0 :(得分:1)
filter.php
中,您只需添加过滤器功能,然后在routes.php
上使用它
要对Route::get('my/url/{variable1}/{variable2})
的过滤器进行Decalre:
Route::filter('myAweSomeFilter', function($route)
{
$variable1 = $route->getParameter('variable1');
if (thisAndThat)
{
doStuff;
}
});
现在,如果要调用模型函数,可以在此函数中执行此操作。
因此,如果您有一个名为AuthModel
的模型和一个名为coursePermissionCheck
的静态函数,只需将其称为AuthModel::coursePermisssionCheck()
,依此类推。您还可以在过滤器函数内部编写一个全新的函数并使用它。它只是另一个函数告诉RouteController如果不满足某个条件该怎么办。
如何使用此过滤器:'before' => 'admin|youFilter'
希望这有帮助。