diff --git a/reviewboard/accounts/backends.py b/reviewboard/accounts/backends.py
index 9290541fc94bea11143950f15af8daea5a9a2ed9..8094c0af0ee29c6fac551b5a5f44a8d436831ec2 100644
--- a/reviewboard/accounts/backends.py
+++ b/reviewboard/accounts/backends.py
@@ -155,16 +155,20 @@ class StandardAuthBackend(AuthBackend, ModelBackend):
                 user._local_site_perm_cache = {}
 
             if obj.pk not in user._local_site_perm_cache:
+                perm_cache = set()
+
                 try:
                     site_profile = user.get_site_profile(obj)
-
-                    perm_cache = set([
-                        key
-                        for key, value in site_profile.permissions.iteritems()
-                        if value
-                    ])
+                    site_perms = site_profile.permissions or {}
+
+                    if site_perms:
+                        perm_cache = set([
+                            key
+                            for key, value in site_perms.iteritems()
+                            if value
+                        ])
                 except LocalSiteProfile.DoesNotExist:
-                    perm_cache = set()
+                    pass
 
                 user._local_site_perm_cache[obj.pk] = perm_cache
 
