core: clear application cache upon application creation
This commit is contained in:
parent
7fbf915e0a
commit
3926ee9eb6
|
@ -1,4 +1,6 @@
|
||||||
"""authentik core app config"""
|
"""authentik core app config"""
|
||||||
|
from importlib import import_module
|
||||||
|
|
||||||
from django.apps import AppConfig
|
from django.apps import AppConfig
|
||||||
|
|
||||||
|
|
||||||
|
@ -9,3 +11,6 @@ class AuthentikCoreConfig(AppConfig):
|
||||||
label = "authentik_core"
|
label = "authentik_core"
|
||||||
verbose_name = "authentik Core"
|
verbose_name = "authentik Core"
|
||||||
mountpoint = ""
|
mountpoint = ""
|
||||||
|
|
||||||
|
def ready(self):
|
||||||
|
import_module("authentik.core.signals")
|
||||||
|
|
|
@ -1,5 +1,24 @@
|
||||||
"""authentik core signals"""
|
"""authentik core signals"""
|
||||||
|
from django.core.cache import cache
|
||||||
from django.core.signals import Signal
|
from django.core.signals import Signal
|
||||||
|
from django.db.models.signals import post_save
|
||||||
|
from django.dispatch import receiver
|
||||||
|
|
||||||
# Arguments: user: User, password: str
|
# Arguments: user: User, password: str
|
||||||
password_changed = Signal()
|
password_changed = Signal()
|
||||||
|
|
||||||
|
|
||||||
|
@receiver(post_save)
|
||||||
|
# pylint: disable=unused-argument
|
||||||
|
def post_save_application(sender, instance, created: bool, **_):
|
||||||
|
"""Clear user's application cache upon application creation"""
|
||||||
|
from authentik.core.models import Application
|
||||||
|
from authentik.core.api.applications import user_app_cache_key
|
||||||
|
|
||||||
|
if sender != Application:
|
||||||
|
return
|
||||||
|
if not created:
|
||||||
|
return
|
||||||
|
# Also delete user application cache
|
||||||
|
keys = cache.keys(user_app_cache_key("*"))
|
||||||
|
cache.delete_many(keys)
|
||||||
|
|
Reference in New Issue