Browse Source

HUE-8758 [connectors] Cleaner logic for removig old connector perms

Romain 5 years ago
parent
commit
3a0d4f9118
1 changed files with 7 additions and 6 deletions
  1. 7 6
      apps/useradmin/src/useradmin/models.py

+ 7 - 6
apps/useradmin/src/useradmin/models.py

@@ -262,14 +262,14 @@ def update_app_permissions(**kwargs):
     added = []
     added = []
 
 
     if ENABLE_CONNECTORS.get():
     if ENABLE_CONNECTORS.get():
-      previous_apps = list(current.keys())
+      old_apps = list(current.keys())
       ConnectorPerm = collections.namedtuple('ConnectorPerm', 'name nice_name settings')
       ConnectorPerm = collections.namedtuple('ConnectorPerm', 'name nice_name settings')
       apps = [
       apps = [
         ConnectorPerm(name=connector['name'], nice_name=connector['nice_name'], settings=[])
         ConnectorPerm(name=connector['name'], nice_name=connector['nice_name'], settings=[])
         for connector in _get_installed_connectors()
         for connector in _get_installed_connectors()
       ]
       ]
     else:
     else:
-      previous_apps = []
+      old_apps = []
       apps = appmanager.DESKTOP_APPS
       apps = appmanager.DESKTOP_APPS
 
 
     for app in apps:
     for app in apps:
@@ -278,10 +278,10 @@ def update_app_permissions(**kwargs):
       actions = set([("access", permission_description)])
       actions = set([("access", permission_description)])
       actions.update(getattr(app.settings, "PERMISSION_ACTIONS", []))
       actions.update(getattr(app.settings, "PERMISSION_ACTIONS", []))
 
 
-      if app_name in current:
-        previous_apps.remove(app_name)
-      else:
+      if app_name not in current:
         current[app_name] = {}
         current[app_name] = {}
+      if app_name in old_apps:
+        old_apps.remove(app_name)
 
 
       for action, description in actions:
       for action, description in actions:
         c = current[app_name].get(action)
         c = current[app_name].get(action)
@@ -297,7 +297,8 @@ def update_app_permissions(**kwargs):
           new_dp.save()
           new_dp.save()
           added.append(new_dp)
           added.append(new_dp)
 
 
-    deleted, _ = HuePermission.objects.filter(app__in=previous_apps).delete()
+    # Only with v2
+    deleted, _ = HuePermission.objects.filter(app__in=old_apps).delete()
 
 
     # Add all permissions to default group except some.
     # Add all permissions to default group except some.
     default_group = get_default_user_group()
     default_group = get_default_user_group()