我想知道基本思想指南。
我暂时通过SonataAdminbundle管理实体,并习惯它。我想向前迈进进步。
我想通过sonataadminbundle
使管理员和用户编辑实体[例如]
我有这样的表/实体。
Id |User | data
1 |bear | sarmon
2 |dog | meat
3 |monkey| banana
4 |bear | peanuts
5 |dog | corn
当然我可以从sonataadminbundle的admin_dashboard编辑实体。
但是,我想让用户"熊"编辑1和4行。
如果我从Controller中的Scratch中进行编辑/更新/列表脚本。这很容易完成。
但是,我认为这就像毫无用处的工作,因为SonataAdminBundle的UI比从头开始的UI更好。
那么,有人知道这种想法的适当方法吗?或为用户和管理员使用SonataAdminBundle是不好的主意??
我想让用户熊看到仅熊相关的表。
Id |User | data
1 |bear | sarmon
4 |bear | peanuts
起初我正在挣扎 public function configureListFields(ListMapper $listMapper)
但是,此代码仅称为一次。我找不到正确的答案。
所以我想我需要将这种代码放在其他地方。
if ($user == bear){
array_push($table,$line);
}
else {
}
同时为用户和特权用户使用管理员是完全可以的。您可以轻松询问管理员是否授予用户登录的当前以编辑第1或4行。
。例如,您可以使用:
protected function configureFormFields(FormMapper $mapper)
{
/* either identify your custom rows here or via ACL/ROLES */
if (!$this->isGranted('EDIT')) {
// not allowed
}
}
对于安全问题(并取决于您的用例),请注意,这不会阻止您的非特权用户显示/列出这些实体(因为上面的示例仅覆盖表单/编辑掩码)。当然,您也可以将逻辑添加到这些方法中。
根据您的安全处理程序,您可以使用Symfony支持的所有内容(角色,ACL,...)。请在此处查看如何将其配置为您的需求:https://sonata-project.org/bundles/admin/3-x/doc/reference/security/security.html