2017-04-03 33 views
0

是否有内置的方式为Django中的用户分配功能权限?从documentations看起来像Dajngo权限绑定到Models。在Django中的功能权限

例如,我想要创建的是4种类型的用户组:普通用户,管理员,管理员和Superadmin。

默认情况下,不同组中的用户将有权执行不同类型的操作。例如Admin组中的用户可以执行Task1,Task2和Task3,但Managers组中的用户只能执行Task1和Task2(不管这些任务在哪个应用中)。

此外,用户权限可以修改为用户撤销执行某些任务的访问权限。例如,默认情况下,所有管理员都可以执行任务1,任务2和任务3,但是可以修改特定管理员的权限以仅执行任务1和任务3。

这可以通过构建Django权限和组来实现,还是需要编写自己的权限系统(或者是否有第三方Django应用程序来执行此操作)?

如果最好写自己的权限和组系统,任何建议设计要遵循。

谢谢!

+0

has_permission装饰器可用于视图,这是很多管理 - 用户,组和权限。 我使用django-guardian进行基于角色的访问控制。它可能适合您的需求。 – fiacre

回答

1

您可以像foo.can_write管理页面或类似

myuser.user_permissions.add(permission, permission, ...) 

在你可以设置所需要的一些动作的权限查看自己的视图设置的权限。从文档:

from django.contrib.auth.decorators import permission_required 
@permission_required('polls.can_vote') 
def my_view(request):