Override this method to override the login_url attribute.
20
21
22
23
24
25
26
27
28
29
30
defget_login_url(self):""" Override this method to override the login_url attribute. """login_url=self.login_urlorsettings.LOGIN_URLifnotlogin_url:raiseImproperlyConfigured('{0} is missing the login_url attribute. Define {0}.login_url, settings.LOGIN_URL, or override ''{0}.get_login_url().'.format(self.__class__.__name__))returnstr(login_url)
Override this method to override the permission_denied_message attribute.
32
33
34
35
36
defget_permission_denied_message(self):""" Override this method to override the permission_denied_message attribute. """returnself.permission_denied_message
Override this method to override the permission_required attribute.
Must return an iterable.
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
defget_permission_required(self):""" Override this method to override the permission_required attribute. Must return an iterable. """ifself.permission_requiredisNone:raiseImproperlyConfigured('{0} is missing the permission_required attribute. Define {0}.permission_required, or override ''{0}.get_permission_required().'.format(self.__class__.__name__))ifisinstance(self.permission_required,str):perms=(self.permission_required,)else:perms=self.permission_requiredreturnperms
Override this method to override the redirect_field_name attribute.
38
39
40
41
42
defget_redirect_field_name(self):""" Override this method to override the redirect_field_name attribute. """returnself.redirect_field_name
defhandle_no_permission(self):ifself.raise_exceptionorself.request.user.is_authenticated:raisePermissionDenied(self.get_permission_denied_message())path=self.request.build_absolute_uri()resolved_login_url=resolve_url(self.get_login_url())# If the login url is the same scheme and net location then use the# path as the "next" url.login_scheme,login_netloc=urlparse(resolved_login_url)[:2]current_scheme,current_netloc=urlparse(path)[:2]if((notlogin_schemeorlogin_scheme==current_scheme)and(notlogin_netlocorlogin_netloc==current_netloc)):path=self.request.get_full_path()returnredirect_to_login(path,resolved_login_url,self.get_redirect_field_name(),)
Override this method to customize the way permissions are checked.
94
95
96
97
98
99
defhas_permission(self):""" Override this method to customize the way permissions are checked. """perms=self.get_permission_required()returnself.request.user.has_perms(perms)