我想知道PermissionRequireMixin在Django是如何工作的。(我找不到任何问题来解释PermissionRequireMixin是如何工作的。我正在调查代码'mixins.py'在路径'django.contrib.auth公司')
例如,如果编写如下代码,它将检查登录用户是否具有名为“test_permission”的权限。如果登录用户具有此权限,则会移动到在template_name属性中写入的模板。否则,它将移动到登录页面(或另一个页面,具体取决于您的设置)。所以PermissionRequiredMixin检查权限才能在类类型视图中继续。在
from django.contrib.auth.mixins import PermissionRequiredMixin
from django.views.generic import ListView
class ViewTest(PermissionRequiredMixin, ListView):
permission_required = ('pertest.test_permission',)
model = Test
template_name = 'pertest/pertest_check_list.html'
我想知道的是。。。在
我调查过django.contrib.auth公司.mixin.py理解PermissionRequiredMixin类如何工作的代码。我可以看到它是AccessMixin的子类,并了解它有什么样的方法。但我不明白如何检查登录权限。我想了解代码库中的流。我应该在哪里检查才能完全理解检查权限的过程?在
我甚至想知道这个。在
假设登录用户“a”具有名为“test_permission”的权限,而“a”用户所在的组具有名为“group_test_permission”的权限。在
^{pr2}$在案例A中,用户A可以继续,因为它拥有“test_permission”。 在案例B中,用户a可以继续,因为它位于一个拥有“group\u test_permission”的组中。在
它是否检查登录用户是否具有auth_user_user_permission表中的权限,然后检查auth_user_group table和auth_group_权限?还是相反的方向?我很困惑,因为group、user、permission都在单独的表中,并且通过ForiegnKey(manytomy或ForiegnKey)相互连接。在
简而言之,我想知道PermissionRequiredMixin类如何检查权限的过程,以及我应该检查哪些部分(哪些代码)才能理解这个过程。在
提前谢谢你。如果我的问题不清楚,请告诉我。在
最后,身份验证后端负责授予或拒绝访问。在
您可能已经注意到,end中的
PermissionRequiredMixin
使用已定义的权限对user对象调用has_perm
。这个方法只是在auth中包装一个名为_user_has_perm的内部方法模型.py. 在最后,您可能需要阅读
django.contrib.auth
提供的backends.py,以了解默认情况下如何授予访问权。在据我所知,默认情况下,它只检查您是否通过您的用户或您的组获得了授权,并允许您进入。在
高温
相关问题 更多 >
编程相关推荐