allow overwriting oauth callback host and scheme for local testing
This commit is contained in:
parent
de6c485a3f
commit
5174f6765c
2 changed files with 14 additions and 1 deletions
|
@ -1,5 +1,7 @@
|
|||
from abc import ABC, abstractmethod
|
||||
from urllib.parse import urlparse, urlunparse
|
||||
|
||||
from django.conf import settings
|
||||
from django.urls.base import reverse
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
|
@ -19,7 +21,16 @@ class Hoster(ABC):
|
|||
return Package.objects.filter(home_repo__startswith=self.base_url)
|
||||
|
||||
def _get_callback_uri(self, request):
|
||||
return request.build_absolute_uri(reverse('editor.oauth.callback', kwargs={'hoster': self.name}))
|
||||
uri = request.build_absolute_uri(reverse('editor.oauth.callback', kwargs={'hoster': self.name}))
|
||||
if settings.OAUTH_CALLBACK_SCHEME is None and settings.OAUTH_CALLBACK_NETLOC is None:
|
||||
return uri
|
||||
|
||||
parts = list(urlparse(uri))
|
||||
if settings.OAUTH_CALLBACK_SCHEME is not None:
|
||||
parts[0] = settings.OAUTH_CALLBACK_SCHEME
|
||||
if settings.OAUTH_CALLBACK_NETLOC is not None:
|
||||
parts[1] = settings.OAUTH_CALLBACK_NETLOC
|
||||
return urlunparse(parts)
|
||||
|
||||
def _get_session_data(self, request):
|
||||
request.session.modified = True
|
||||
|
|
|
@ -51,6 +51,8 @@ DIRECT_EDITING = config.getboolean('c3nav', 'direct_editing', fallback=DEBUG)
|
|||
PUBLIC_PACKAGES = [n for n in config.get('c3nav', 'public_packages', fallback='').split(',') if n]
|
||||
|
||||
EDITOR_HOSTERS = OrderedDict((name[7:], data) for name, data in config.items() if name.startswith('hoster:'))
|
||||
OAUTH_CALLBACK_SCHEME = config.get('c3nav', 'oauth_callback_scheme')
|
||||
OAUTH_CALLBACK_NETLOC = config.get('c3nav', 'oauth_callback_netloc')
|
||||
|
||||
db_backend = config.get('database', 'backend', fallback='sqlite3')
|
||||
DATABASES = {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue