﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
32782	Optimize _get_user_permissions by using set comprehensions	Abhyudai	nobody	"The intended patch

{{{
diff --git a/django/contrib/auth/models.py b/django/contrib/auth/models.py
index 5f092f0ae8..8f7b65322c 100644
--- a/django/contrib/auth/models.py
+++ b/django/contrib/auth/models.py
@@ -191,13 +191,13 @@ class UserManager(BaseUserManager):
 
 # A few helper functions for common logic between User and AnonymousUser.
 def _user_get_permissions(user, obj, from_name):
-    permissions = set()
     name = 'get_%s_permissions' % from_name
-    for backend in auth.get_backends():
-        if hasattr(backend, name):
-            permissions.update(getattr(backend, name)(user, obj))
-    return permissions
-
+    return {
+        permission
+        for backend in auth.get_backends()
+        if hasattr(backend, name)
+        for permission in getattr(backend, name)(user, obj)
+    }
 
 def _user_has_perm(user, perm, obj):
     """"""

}}}


Since the function `_get_user_permissions` is used by almost all permission related methods, this change could potentially reduce the time taken for it.

If it seems acceptable, I would love to send a pull request."	Cleanup/optimization	closed	Uncategorized	3.2	Normal	needsinfo	permissions, auth		Unreviewed	0	0	0	0	1	0
