我有Symfony 2.3 +奏鸣曲管理员+奏鸣曲用户包。symfony奏鸣曲管理员角色嵌入onetomany实体
我已经创建了一个实体Student
,另一个实体Contact
。 Student
与Contact
有一对多的关系。我已将Contact
添加到Student
与sonata_type_collection
在我的StudentAdmin
类中。我也创建了一组用户Operator
并将所有权限分配给Student
,但只有list
和view
到Contact
。
我的问题是,Operator
的任何用户都不能添加或删除Contact
(来自学生编辑页面),但他们可以编辑(并保存值)。
任何建议或例子?
一些代码:
角色分配:
ROLE_SONATA_ADMIN_STUDENT_EDIT
ROLE_SONATA_ADMIN_STUDENT_LIST
ROLE_SONATA_ADMIN_STUDENT_CREATE
ROLE_SONATA_ADMIN_STUDENT_VIEW
ROLE_SONATA_ADMIN_STUDENT_DELETE
ROLE_SONATA_ADMIN_CONTACT_LIST
ROLE_SONATA_ADMIN_CONTACT_VIEW
ROLE_ADMIN: ROLE_USER, ROLE_SONATA_ADMIN
/**
* @ORM\OneToMany(targetEntity="MyBundle\Entity\Contact",
mappedBy="student",
cascade={"persist", "remove"})
**/
private $contact;
->add('contact', 'sonata_type_collection',
array(
'label' => 'Contact',
'by_reference' => false,
),
array(
'edit' => 'inline',
'inline' => 'table',
))
谢谢!
你到底想达到什么目的?你想让角色操作员添加/删除联系人?你必须添加角色ROLE_SONATA_ADMIN_CONTACT_CREATE,ROLE_SONATA_ADMIN_CONTACT_DELETE – HypeR
英语不是我的语言,也许我拼错了一些东西。 我分配了角色,当我在学生编辑页面时,操作员用户无法添加或删除联系人(以嵌入的形式),没关系,因为按钮添加/删除消失,但他可以编辑/更改值有权访问的用户),因为输入已启用,并且当我保存学生时,这些值将保持联系。我不想那样。我有其他的用户组。 我认为问题是知道角色如何与相关/嵌入实体协同工作。 –