--- a/Allura/allura/model/auth.py
+++ b/Allura/allura/model/auth.py
@@ -650,10 +650,12 @@
return '/u/' + self.username + '/'
def my_projects(self, role_name=None):
- '''Find the projects for which this user has a named role.
-
- If role_name is given returns only projects for which user has a role with given name.
- '''
+ """Return projects to which this user belongs.
+
+ If ``role_name`` is provided, return only projects for which user has
+ that role.
+
+ """
reaching_role_ids = g.credentials.user_roles(user_id=self._id).reaching_ids_set
reaching_roles = [ProjectRole.query.get(_id=i) for i in reaching_role_ids]
if not role_name:
@@ -661,7 +663,7 @@
if r.name and r.project and not r.project.deleted]
else:
named_roles = [r for r in reaching_roles
- if r.name == role_name and not r.project.deleted]
+ if r.name == role_name and r.project and not r.project.deleted]
seen_project_ids = set()
for r in named_roles:
if r.project_id in seen_project_ids: continue