Source code for tcms.kiwi_auth.backends
# Copyright (c) 2020,2022 Alexander Todorov <atodorov@MrSenko.com>
from django.conf import settings
from django.contrib.auth.backends import BaseBackend
[docs]
class AnonymousViewBackend(BaseBackend):
"""
Backend which always returns True for *.view_* permissions for
anonymous users! Add it to ``AUTHENTICATION_BACKENDS`` setting
to enable read-only access which doesn't require login!
"""
[docs]
def has_perm(self, user_obj, perm, obj=None):
# let other backends decide
if perm.startswith("auth."):
return False
if perm.find(".view_") > -1 and (
user_obj.is_anonymous or user_obj.username == settings.ANONYMOUS_USER_NAME
):
return True
return super().has_perm(user_obj, perm, obj=obj)