12 lines
		
	
	
		
			542 B
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
			
		
		
	
	
			12 lines
		
	
	
		
			542 B
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
from django.db.models.signals import m2m_changed
 | 
						|
from .models import Role, Permission, User
 | 
						|
from django.dispatch import receiver
 | 
						|
from django.core.cache import cache
 | 
						|
from apps.utils.permission import get_user_perms_map
 | 
						|
 | 
						|
# 变更用户角色时动态更新权限或者前端刷新
 | 
						|
# @receiver(m2m_changed, sender=User.roles.through)
 | 
						|
# def update_perms_cache_user(sender, instance, action, **kwargs):
 | 
						|
#     if action in ['post_remove', 'post_add']:
 | 
						|
#         if cache.get('perms_' + instance.id, None):
 | 
						|
#             get_user_perms_map(instance) |