我正在开发学习管理系统。
系统有几个演员,如学生,导师,管理员,院长等。现在,我需要一个可以处理不同角色的权限系统(学生可以在他们的篮子中添加课程,导师可以CRUD课程,管理员也可以访问对金融部分等等。)
根据我的研究,我需要一些可以处理不同角色的行级权限系统。我见过一些应用程序,例如django-guardian
djang-permissions
django-rulez
等。但仍然对如何设计基于它们的角色感到困惑(它们没有详细记录)。
任何人都可以给我一个提示来完成这项痛苦的工作吗?
答案 0 :(得分:1)
Django有一个非常好的身份验证/授权api内置
我建议您阅读以下文档:https://docs.djangoproject.com/en/dev/topics/auth/这为您提供了基础知识。
对于您的应用程序,最好的方法是设置cetain事物的权限,例如编辑课程的权限。然后,您可以使用权限所需的装饰器来查看允许您执行这些操作的视图。例如,如果您有一个视图:
def edit_course(request):
...#handle form rendering/submission for course model
您可以添加以上此视图:
@permission_required('course_editor')
def edit_course(request):
...#handle form rendering/submission for course model
然后只有拥有此权限的用户才能访问该功能。
您可以通过创建可以分配权限的群组来进一步发展,例如教师组,然后您可以将所有员工分配到该组,他们将继承此“course_editor”权限。
但正如我所说,这个问题对于特定答案来说有点宽泛,所以你最好的办法是在上面的网址上查看文档。