如何为管理员和经理转移Sonataadminbundle



我想知道基本思想指南。

我暂时通过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

相关内容

  • 没有找到相关文章

最新更新