瀏覽代碼

[useradmin] Improve transaction handling in update_app_permissions signal handler.

abec 13 年之前
父節點
當前提交
59e2e0d
共有 1 個文件被更改,包括 4 次插入5 次删除
  1. 4 5
      apps/useradmin/src/useradmin/models.py

+ 4 - 5
apps/useradmin/src/useradmin/models.py

@@ -52,7 +52,7 @@ onto actions which may not relate to database models.
 from enum import Enum
 import logging
 
-from django.db import models
+from django.db import connection, models
 from django.contrib.auth import models as auth_models
 from django.utils.translation import ugettext_lazy as _t
 
@@ -222,15 +222,15 @@ def update_app_permissions(**kwargs):
   # The HuePermission model needs to be sync'd for the following code to work.
   # Since all apps should have been sync'd before useradmin, referencing them
   # here is functional.
-  if kwargs['app'].__name__.startswith('useradmin'):
+  if u'useradmin_huepermission' in connection.introspection.table_names():
+    current = {}
+
     try:
       for dp in HuePermission.objects.all():
         current.setdefault(dp.app, {})[dp.action] = dp
     except:
       return
 
-    current = {}
-
     updated = 0
     uptodate = 0
     added = [ ]
@@ -273,4 +273,3 @@ def update_app_permissions(**kwargs):
 
 models.signals.post_syncdb.connect(update_app_permissions)
 models.signals.post_syncdb.connect(get_default_user_group)
-