【发布时间】:2015-07-31 12:36:33
【问题描述】:
我正在使用 symfony2 构建一个 Web 应用程序。我有不同类型的不同角色的用户; ROLE_STUDENT 和 ROLE_TEACHER,这两个用户可以访问课程的详细信息;如果用户是老师,则会显示按钮编辑,如果是学生,则会显示按钮订阅,实际上这并不安全,因为如果学生在地址栏中键入,它只是隐藏了控制器操作的路径/course/2/edit 将执行编辑操作,因此我必须使用 @security 注释来保护操作:
这是我到目前为止所做的:
/**
* @Security("has_role('ROLE_TEACHER')")
*/ public function editAction()
{}
在树枝上:
{% if is_granted('ROLE_TEACHER') %}
<a href="{{path('edit', {'id': course.id})}}">edit</a>
{% elseif is_granted('ROLE_STUDENT')%}
<a href="{{path('subscribe', {'id': course.id})}}">subscribe</a>
.
问题是我有很多可供两个用户访问的内容,我认为有一个更好的解决方案,而不是复制/粘贴相同的代码。我是 Symfony 2 的新手,请多多包涵。
【问题讨论】:
标签: symfony