Laravel 4:根据权限限制对视图的访问

时间:2014-10-01 20:14:18

标签: laravel-4 filter laravel-routing

我正在使用Doctrine 2在Laravel 4中构建一系列表单。我希望能够根据用户的权限级别限制对每个表单子系统的访问(无,查看,查看和编辑,查看编辑和删除)

在我的数据库中,我有一个表,其中存储了每个表单子部分(id,form_name,view_foldername),称为“libForms”。我还有一个“用户”表,其中包含所有典型的用户信息。添加新用户时,第三个表“权限”将填充当前系统中该特定用户的每个表单的访问级别“0”(无)。

创建新表单时,我还将其设置为在app / views目录中创建新目录的位置。该目录的名称是表单名称的camelCase版本。

我想要做的是限制访问级别为“0”(无)的用户访问app / views / folderName中的任何视图。任何没有访问权限的用户都应该吐回来到主页。

到目前为止,我已经想出了类似的东西:

Route::filter('formAuth', function()
{
$entityManager = App::make('Doctrine\ORM\EntityManagerInterface');


//get current user
$current_user = $entityManager->getRepository('User')->find(Session::get('my_userid'));

//check user's permission level for this section of forms
$form_route = $entityManager->getRepository('LibForm')->findOneBy(array('route_name' => Request::segment(1)));

...
});

然后在Controller的构造函数中调用此过滤器。

$this->beforeFilter('formAuth');

我不认为任何这一点接近正确,我每次想到别的东西时都会让自己更加困惑!

0 个答案:

没有答案