我正在使用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');
我不认为任何这一点接近正确,我每次想到别的东西时都会让自己更加困惑!