2013-04-23 18:51:17 +02:00
|
|
|
from __future__ import absolute_import
|
|
|
|
|
2016-08-08 11:27:28 +02:00
|
|
|
from typing import Dict, Any
|
|
|
|
from django.http import HttpRequest
|
2012-10-15 22:52:08 +02:00
|
|
|
from django.conf import settings
|
2016-11-08 10:00:31 +01:00
|
|
|
|
2017-04-27 02:04:22 +02:00
|
|
|
from zerver.models import UserProfile, get_realm, get_unique_open_realm
|
2017-04-20 21:02:56 +02:00
|
|
|
from zproject.backends import (
|
|
|
|
any_oauth_backend_enabled,
|
|
|
|
dev_auth_enabled,
|
|
|
|
github_auth_enabled,
|
|
|
|
google_auth_enabled,
|
|
|
|
password_auth_enabled,
|
|
|
|
)
|
2016-11-02 21:41:10 +01:00
|
|
|
from zerver.lib.utils import get_subdomain
|
2017-04-18 07:10:41 +02:00
|
|
|
from zerver.lib.realm_icon import get_realm_icon_url
|
|
|
|
|
2017-03-09 08:40:03 +01:00
|
|
|
from version import ZULIP_VERSION
|
2016-11-08 10:00:31 +01:00
|
|
|
|
2016-11-08 10:07:47 +01:00
|
|
|
def common_context(user):
|
|
|
|
# type: (UserProfile) -> Dict[str, Any]
|
|
|
|
return {
|
|
|
|
'realm_uri': user.realm.uri,
|
|
|
|
'server_uri': settings.SERVER_URI,
|
|
|
|
'external_uri_scheme': settings.EXTERNAL_URI_SCHEME,
|
|
|
|
'external_host': settings.EXTERNAL_HOST,
|
|
|
|
}
|
|
|
|
|
2012-10-30 21:20:52 +01:00
|
|
|
def add_settings(request):
|
2016-08-08 11:27:28 +02:00
|
|
|
# type: (HttpRequest) -> Dict[str, Any]
|
2017-03-21 18:05:21 +01:00
|
|
|
if hasattr(request, "user") and hasattr(request.user, "realm"):
|
2016-08-14 00:57:45 +02:00
|
|
|
realm = request.user.realm
|
2016-11-08 10:00:31 +01:00
|
|
|
elif settings.REALMS_HAVE_SUBDOMAINS:
|
|
|
|
subdomain = get_subdomain(request)
|
2017-01-04 05:30:48 +01:00
|
|
|
realm = get_realm(subdomain)
|
2017-03-21 18:05:21 +01:00
|
|
|
else:
|
2017-04-27 02:04:22 +02:00
|
|
|
# This will return None if there is no unique, open realm.
|
|
|
|
realm = get_unique_open_realm()
|
2016-11-08 10:00:31 +01:00
|
|
|
|
|
|
|
if realm is not None:
|
2016-08-14 00:57:45 +02:00
|
|
|
realm_uri = realm.uri
|
2017-04-18 07:10:41 +02:00
|
|
|
realm_name = realm.name
|
|
|
|
realm_icon = get_realm_icon_url(realm)
|
|
|
|
realm_description = realm.description or "The coolest place in the universe."
|
2016-08-14 00:57:45 +02:00
|
|
|
else:
|
|
|
|
realm_uri = settings.SERVER_URI
|
2017-04-18 07:10:41 +02:00
|
|
|
realm_name = None
|
|
|
|
realm_icon = None
|
|
|
|
realm_description = None
|
2016-08-14 00:57:45 +02:00
|
|
|
|
2012-10-17 20:34:38 +02:00
|
|
|
return {
|
2017-04-18 07:10:41 +02:00
|
|
|
'realms_have_subdomains': settings.REALMS_HAVE_SUBDOMAINS,
|
2017-01-24 06:21:14 +01:00
|
|
|
'custom_logo_url': settings.CUSTOM_LOGO_URL,
|
|
|
|
'register_link_disabled': settings.REGISTER_LINK_DISABLED,
|
|
|
|
'login_link_disabled': settings.LOGIN_LINK_DISABLED,
|
|
|
|
'about_link_disabled': settings.ABOUT_LINK_DISABLED,
|
|
|
|
'show_oss_announcement': settings.SHOW_OSS_ANNOUNCEMENT,
|
|
|
|
'zulip_admin': settings.ZULIP_ADMINISTRATOR,
|
|
|
|
'terms_of_service': settings.TERMS_OF_SERVICE,
|
2017-04-10 12:55:43 +02:00
|
|
|
'privacy_policy': settings.PRIVACY_POLICY,
|
2017-01-24 06:21:14 +01:00
|
|
|
'login_url': settings.HOME_NOT_LOGGED_IN,
|
|
|
|
'only_sso': settings.ONLY_SSO,
|
|
|
|
'external_api_path': settings.EXTERNAL_API_PATH,
|
|
|
|
'external_api_uri': settings.EXTERNAL_API_URI,
|
|
|
|
'external_host': settings.EXTERNAL_HOST,
|
|
|
|
'external_uri_scheme': settings.EXTERNAL_URI_SCHEME,
|
|
|
|
'realm_uri': realm_uri,
|
2017-04-18 07:10:41 +02:00
|
|
|
'realm_name': realm_name,
|
|
|
|
'realm_icon': realm_icon,
|
|
|
|
'realm_description': realm_description,
|
2017-01-24 06:21:14 +01:00
|
|
|
'server_uri': settings.SERVER_URI,
|
|
|
|
'api_site_required': settings.EXTERNAL_API_PATH != "api.zulip.com",
|
2013-12-04 22:35:38 +01:00
|
|
|
'email_integration_enabled': settings.EMAIL_GATEWAY_BOT != "",
|
2017-01-24 06:21:14 +01:00
|
|
|
'email_gateway_example': settings.EMAIL_GATEWAY_EXAMPLE,
|
|
|
|
'open_realm_creation': settings.OPEN_REALM_CREATION,
|
|
|
|
'password_auth_enabled': password_auth_enabled(realm),
|
|
|
|
'dev_auth_enabled': dev_auth_enabled(realm),
|
|
|
|
'google_auth_enabled': google_auth_enabled(realm),
|
|
|
|
'github_auth_enabled': github_auth_enabled(realm),
|
2017-04-20 21:02:56 +02:00
|
|
|
'any_oauth_backend_enabled': any_oauth_backend_enabled(realm),
|
2017-01-24 06:21:14 +01:00
|
|
|
'development_environment': settings.DEVELOPMENT,
|
|
|
|
'support_email': settings.ZULIP_ADMINISTRATOR,
|
|
|
|
'find_team_link_disabled': settings.FIND_TEAM_LINK_DISABLED,
|
|
|
|
'password_min_length': settings.PASSWORD_MIN_LENGTH,
|
|
|
|
'password_min_quality': settings.PASSWORD_MIN_ZXCVBN_QUALITY,
|
2017-03-09 08:40:03 +01:00
|
|
|
'zulip_version': ZULIP_VERSION,
|
2012-10-17 20:34:38 +02:00
|
|
|
}
|
2013-06-17 18:01:22 +02:00
|
|
|
|
2016-11-08 10:00:31 +01:00
|
|
|
|
2013-06-17 18:01:22 +02:00
|
|
|
def add_metrics(request):
|
2016-08-08 11:27:28 +02:00
|
|
|
# type: (HttpRequest) -> Dict[str, str]
|
2013-06-17 18:01:22 +02:00
|
|
|
return {
|
2013-10-29 22:21:17 +01:00
|
|
|
'dropboxAppKey': settings.DROPBOX_APP_KEY
|
2013-06-17 18:01:22 +02:00
|
|
|
}
|