Skip to content

Commit 74ee015

Browse files
committed
Use default avatar for User/Orgs in OAuth services
1 parent 9e7bcb7 commit 74ee015

File tree

5 files changed

+19
-1
lines changed

5 files changed

+19
-1
lines changed

readthedocs/oauth/services/base.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,9 @@ class Service(object):
3131
adapter = None
3232
url_pattern = None
3333

34+
default_user_avatar_url = settings.OAUTH_AVATAR_USER_DEFAULT_URL
35+
default_org_avatar_url = settings.OAUTH_AVATAR_ORG_DEFAULT_URL
36+
3437
def __init__(self, user, account):
3538
self.session = None
3639
self.user = user

readthedocs/oauth/services/bitbucket.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,8 @@ def create_repository(self, fields, privacy=DEFAULT_PRIVACY_LEVEL,
136136

137137
avatar_url = fields['links']['avatar']['href'] or ''
138138
repo.avatar_url = re.sub(r'\/16\/$', r'/32/', avatar_url)
139+
if not repo.avatar_url:
140+
repo.avatar_url = self.default_user_avatar_url
139141

140142
repo.json = json.dumps(fields)
141143
repo.save()
@@ -157,6 +159,8 @@ def create_organization(self, fields):
157159
organization.name = fields.get('display_name')
158160
organization.email = fields.get('email')
159161
organization.avatar_url = fields['links']['avatar']['href']
162+
if not organization.avatar_url:
163+
organization.avatar_url = self.default_org_avatar_url
160164
organization.url = fields['links']['html']['href']
161165
organization.json = json.dumps(fields)
162166
organization.account = self.account

readthedocs/oauth/services/github.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,8 @@ def create_repository(self, fields, privacy=DEFAULT_PRIVACY_LEVEL,
114114
repo.vcs = 'git'
115115
repo.account = self.account
116116
repo.avatar_url = fields.get('owner', {}).get('avatar_url')
117+
if not repo.avatar_url:
118+
repo.avatar_url = self.default_user_avatar_url
117119
repo.json = json.dumps(fields)
118120
repo.save()
119121
return repo
@@ -143,6 +145,8 @@ def create_organization(self, fields):
143145
organization.name = fields.get('name')
144146
organization.email = fields.get('email')
145147
organization.avatar_url = fields.get('avatar_url')
148+
if not organization.avatar_url:
149+
organization.avatar_url = self.default_org_avatar_url
146150
organization.json = json.dumps(fields)
147151
organization.account = self.account
148152
organization.save()

readthedocs/oauth/services/gitlab.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,10 @@ def create_repository(
162162

163163
owner = fields.get('owner') or {}
164164
repo.avatar_url = (
165-
fields.get('avatar_url') or owner.get('avatar_url'))
165+
fields.get('avatar_url') or owner.get('avatar_url')
166+
)
167+
if not repo.avatar_url:
168+
repo.avatar_url = self.default_user_avatar_url
166169

167170
repo.json = json.dumps(fields)
168171
repo.save()
@@ -201,6 +204,8 @@ def create_organization(self, fields):
201204
path=fields.get('path'),
202205
)
203206
organization.avatar_url = fields.get('avatar_url')
207+
if not organization.avatar_url:
208+
organization.avatar_url = self.default_user_avatar_url
204209
organization.json = json.dumps(fields)
205210
organization.save()
206211
return organization

readthedocs/settings/base.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -314,6 +314,8 @@ def INSTALLED_APPS(self): # noqa
314314
# Misc application settings
315315
GLOBAL_ANALYTICS_CODE = 'UA-17997319-1'
316316
GRAVATAR_DEFAULT_IMAGE = 'https://media.readthedocs.org/images/silhouette.png' # NOQA
317+
OAUTH_AVATAR_USER_DEFAULT_URL = GRAVATAR_DEFAULT_IMAGE
318+
OAUTH_AVATAR_ORG_DEFAULT_URL = GRAVATAR_DEFAULT_IMAGE
317319
RESTRICTEDSESSIONS_AUTHED_ONLY = True
318320
RESTRUCTUREDTEXT_FILTER_SETTINGS = {
319321
'cloak_email_addresses': True,

0 commit comments

Comments
 (0)