authentik.enterprise.audit.apps

Enterprise app config

 1"""Enterprise app config"""
 2
 3from django.conf import settings
 4from django.utils.translation import gettext_lazy as _
 5
 6from authentik.enterprise.apps import EnterpriseConfig
 7from authentik.tenants.flags import Flag
 8
 9
10class AuditIncludeExpandedDiff(Flag[bool], key="enterprise_audit_include_expanded_diff"):
11    default = False
12    visibility = "none"
13    description = _(
14        "Include additional information in audit logs, may incur a performance penalty."
15    )
16
17
18class AuthentikEnterpriseAuditConfig(EnterpriseConfig):
19    """Enterprise app config"""
20
21    name = "authentik.enterprise.audit"
22    label = "authentik_enterprise_audit"
23    verbose_name = "authentik Enterprise.Audit"
24    default = True
25
26    def ready(self):
27        """Install enterprise audit middleware"""
28        orig_import = "authentik.events.middleware.AuditMiddleware"
29        new_import = "authentik.enterprise.audit.middleware.EnterpriseAuditMiddleware"
30        settings.MIDDLEWARE = [new_import if x == orig_import else x for x in settings.MIDDLEWARE]
31        return super().ready()
class AuditIncludeExpandedDiff(authentik.tenants.flags.Flag[bool]):
11class AuditIncludeExpandedDiff(Flag[bool], key="enterprise_audit_include_expanded_diff"):
12    default = False
13    visibility = "none"
14    description = _(
15        "Include additional information in audit logs, may incur a performance penalty."
16    )

Abstract base class for generic types.

On Python 3.12 and newer, generic classes implicitly inherit from Generic when they declare a parameter list after the class's name::

class Mapping[KT, VT]:
    def __getitem__(self, key: KT) -> VT:
        ...
    # Etc.

On older versions of Python, however, generic classes have to explicitly inherit from Generic.

After a class has been declared to be generic, it can then be used as follows::

def lookup_name[KT, VT](mapping: Mapping[KT, VT], key: KT, default: VT) -> VT:
    try:
        return mapping[key]
    except KeyError:
        return default
default = False
visibility = 'none'
description = 'Include additional information in audit logs, may incur a performance penalty.'
class AuthentikEnterpriseAuditConfig(authentik.enterprise.apps.EnterpriseConfig):
19class AuthentikEnterpriseAuditConfig(EnterpriseConfig):
20    """Enterprise app config"""
21
22    name = "authentik.enterprise.audit"
23    label = "authentik_enterprise_audit"
24    verbose_name = "authentik Enterprise.Audit"
25    default = True
26
27    def ready(self):
28        """Install enterprise audit middleware"""
29        orig_import = "authentik.events.middleware.AuditMiddleware"
30        new_import = "authentik.enterprise.audit.middleware.EnterpriseAuditMiddleware"
31        settings.MIDDLEWARE = [new_import if x == orig_import else x for x in settings.MIDDLEWARE]
32        return super().ready()

Enterprise app config

label = 'authentik_enterprise_audit'
verbose_name = 'authentik Enterprise.Audit'
default = True
def ready(self):
27    def ready(self):
28        """Install enterprise audit middleware"""
29        orig_import = "authentik.events.middleware.AuditMiddleware"
30        new_import = "authentik.enterprise.audit.middleware.EnterpriseAuditMiddleware"
31        settings.MIDDLEWARE = [new_import if x == orig_import else x for x in settings.MIDDLEWARE]
32        return super().ready()

Install enterprise audit middleware