如何为admin和manager分流SonataAdminBundle
How to divert the SonataAdminBundle for both admin and manager
我想知道基本的想法指南。
我现在正在通过 SonataAdminBundle 管理实体并习惯它。
我要进步一步。
我想让管理员和用户都通过 sonataadminbundle 编辑实体
[例如]
我有table/entity这样的。
Id |User | data
1 |bear | sarmon
2 |dog | meat
3 |monkey| banana
4 |bear | peanuts
5 |dog | corn
我(管理员)当然可以编辑 SonataAdminBundle admin_dashboard 中的实体。
但是我想让用户 'bear' 只编辑 1 行和 4 行。
如果我在 Controller 中从头开始制作 edit/update/list 脚本。
很容易实现。
但是,我认为这是无用的工作,因为 SonataAdminBundle 比我从头开始做的更好UI。
所以,有谁知道这种想法的合适方法吗??
或者对用户和管理员都使用 SonataAdminBundle 是个坏主意??
我想让用户 bear 只看到与 bear 相关的表。
Id |User | data
1 |bear | sarmon
4 |bear | peanuts
一开始我很纠结
public function configureListFields(ListMapper $listMapper)
然而这段代码只被调用一次。
我找不到正确的答案。
所以我想我需要把这种代码放在别的地方。
if ($user == bear){
array_push($table,$line);
}
else {
}
同时为用户和特权用户使用 AdminBundle 完全没问题。
您可以轻松地询问管理员当前登录的用户是否已被授予编辑第 1 行或第 4 行的权限。
例如你可以使用:
protected function configureFormFields(FormMapper $mapper)
{
/* either identify your custom rows here or via ACL/ROLES */
if (!$this->isGranted('EDIT')) {
// not allowed
}
}
出于安全考虑(并取决于您的用例),请注意,这不会阻止您的非特权用户 show/list 这些实体(因为上面的示例仅覆盖 form/edit掩码)。当然,您也可以将逻辑添加到这些方法中。
根据您的安全处理程序,您可以使用 symfony 支持的所有内容(角色、ACL 等)。
请在此处查看如何根据您的需要配置它:https://sonata-project.org/bundles/admin/3-x/doc/reference/security.html
我想知道基本的想法指南。
我现在正在通过 SonataAdminBundle 管理实体并习惯它。 我要进步一步。
我想让管理员和用户都通过 sonataadminbundle 编辑实体
[例如]
我有table/entity这样的。
Id |User | data
1 |bear | sarmon
2 |dog | meat
3 |monkey| banana
4 |bear | peanuts
5 |dog | corn
我(管理员)当然可以编辑 SonataAdminBundle admin_dashboard 中的实体。
但是我想让用户 'bear' 只编辑 1 行和 4 行。
如果我在 Controller 中从头开始制作 edit/update/list 脚本。 很容易实现。
但是,我认为这是无用的工作,因为 SonataAdminBundle 比我从头开始做的更好UI。
所以,有谁知道这种想法的合适方法吗?? 或者对用户和管理员都使用 SonataAdminBundle 是个坏主意??
我想让用户 bear 只看到与 bear 相关的表。
Id |User | data
1 |bear | sarmon
4 |bear | peanuts
一开始我很纠结
public function configureListFields(ListMapper $listMapper)
然而这段代码只被调用一次。
我找不到正确的答案。
所以我想我需要把这种代码放在别的地方。
if ($user == bear){
array_push($table,$line);
}
else {
}
同时为用户和特权用户使用 AdminBundle 完全没问题。 您可以轻松地询问管理员当前登录的用户是否已被授予编辑第 1 行或第 4 行的权限。
例如你可以使用:
protected function configureFormFields(FormMapper $mapper)
{
/* either identify your custom rows here or via ACL/ROLES */
if (!$this->isGranted('EDIT')) {
// not allowed
}
}
出于安全考虑(并取决于您的用例),请注意,这不会阻止您的非特权用户 show/list 这些实体(因为上面的示例仅覆盖 form/edit掩码)。当然,您也可以将逻辑添加到这些方法中。
根据您的安全处理程序,您可以使用 symfony 支持的所有内容(角色、ACL 等)。 请在此处查看如何根据您的需要配置它:https://sonata-project.org/bundles/admin/3-x/doc/reference/security.html