From 9611284df033a32e0b89328358414d8575017455 Mon Sep 17 00:00:00 2001 From: Bill DeRusha Date: Thu, 1 Feb 2018 10:52:51 -0500 Subject: [PATCH] zendesk proxy plugin --- cms/envs/aws.py | 3 -- cms/envs/common.py | 1 - cms/urls.py | 1 - lms/envs/aws.py | 1 - lms/envs/common.py | 1 - lms/urls.py | 3 -- openedx/core/djangoapps/zendesk_proxy/apps.py | 40 +++++++++++++++++++ .../zendesk_proxy/settings/__init__.py | 0 .../djangoapps/zendesk_proxy/settings/aws.py | 6 +++ .../zendesk_proxy/settings/common.py | 6 +++ setup.py | 2 + 11 files changed, 54 insertions(+), 10 deletions(-) create mode 100644 openedx/core/djangoapps/zendesk_proxy/apps.py create mode 100644 openedx/core/djangoapps/zendesk_proxy/settings/__init__.py create mode 100644 openedx/core/djangoapps/zendesk_proxy/settings/aws.py create mode 100644 openedx/core/djangoapps/zendesk_proxy/settings/common.py diff --git a/cms/envs/aws.py b/cms/envs/aws.py index 5e96be8785..4bcf9a3f68 100644 --- a/cms/envs/aws.py +++ b/cms/envs/aws.py @@ -445,9 +445,6 @@ EVENT_TRACKING_BACKENDS['segmentio']['OPTIONS']['processors'][0]['OPTIONS']['whi VIRTUAL_UNIVERSITIES = ENV_TOKENS.get('VIRTUAL_UNIVERSITIES', []) -# Zendesk -ZENDESK_OAUTH_ACCESS_TOKEN = AUTH_TOKENS.get("ZENDESK_OAUTH_ACCESS_TOKEN") - ##### ACCOUNT LOCKOUT DEFAULT PARAMETERS ##### MAX_FAILED_LOGIN_ATTEMPTS_ALLOWED = ENV_TOKENS.get("MAX_FAILED_LOGIN_ATTEMPTS_ALLOWED", 5) MAX_FAILED_LOGIN_ATTEMPTS_LOCKOUT_PERIOD_SECS = ENV_TOKENS.get("MAX_FAILED_LOGIN_ATTEMPTS_LOCKOUT_PERIOD_SECS", 15 * 60) diff --git a/cms/envs/common.py b/cms/envs/common.py index 85307f775d..01d95c845e 100644 --- a/cms/envs/common.py +++ b/cms/envs/common.py @@ -1493,7 +1493,6 @@ VIDEO_IMAGE_ASPECT_RATIO_ERROR_MARGIN = 0.1 ZENDESK_URL = None ZENDESK_USER = None ZENDESK_API_KEY = None -ZENDESK_OAUTH_ACCESS_TOKEN = None ZENDESK_CUSTOM_FIELDS = {} diff --git a/cms/urls.py b/cms/urls.py index ecdc29a308..4bf756f9d3 100644 --- a/cms/urls.py +++ b/cms/urls.py @@ -157,7 +157,6 @@ urlpatterns = [ url(r'^api/val/v0/', include('edxval.urls')), url(r'^api/tasks/v0/', include('user_tasks.urls')), url(r'^accessibility$', contentstore.views.accessibility, name='accessibility'), - url(r'^zendesk_proxy/', include('openedx.core.djangoapps.zendesk_proxy.urls')), ] JS_INFO_DICT = { diff --git a/lms/envs/aws.py b/lms/envs/aws.py index 564ccab362..2fb3bd977d 100644 --- a/lms/envs/aws.py +++ b/lms/envs/aws.py @@ -598,7 +598,6 @@ MAILCHIMP_NEW_USER_LIST_ID = ENV_TOKENS.get("MAILCHIMP_NEW_USER_LIST_ID") # Zendesk ZENDESK_USER = AUTH_TOKENS.get("ZENDESK_USER") ZENDESK_API_KEY = AUTH_TOKENS.get("ZENDESK_API_KEY") -ZENDESK_OAUTH_ACCESS_TOKEN = AUTH_TOKENS.get("ZENDESK_OAUTH_ACCESS_TOKEN") # API Key for inbound requests from Notifier service EDX_API_KEY = AUTH_TOKENS.get("EDX_API_KEY") diff --git a/lms/envs/common.py b/lms/envs/common.py index bfc3191af7..bd3c0b3b5e 100644 --- a/lms/envs/common.py +++ b/lms/envs/common.py @@ -1151,7 +1151,6 @@ FEEDBACK_SUBMISSION_EMAIL = None ZENDESK_URL = None ZENDESK_USER = None ZENDESK_API_KEY = None -ZENDESK_OAUTH_ACCESS_TOKEN = None ZENDESK_CUSTOM_FIELDS = {} ##### EMBARGO ##### diff --git a/lms/urls.py b/lms/urls.py index 4f4dd66ffc..18115bdd1b 100644 --- a/lms/urls.py +++ b/lms/urls.py @@ -139,9 +139,6 @@ urlpatterns = [ url(r'^dashboard/', include('learner_dashboard.urls')), url(r'^api/experiments/', include('experiments.urls', namespace='api_experiments')), - - # Zendesk API proxy endpoint - url(r'^zendesk_proxy/', include('openedx.core.djangoapps.zendesk_proxy.urls')), ] # TODO: This needs to move to a separate urls.py once the student_account and diff --git a/openedx/core/djangoapps/zendesk_proxy/apps.py b/openedx/core/djangoapps/zendesk_proxy/apps.py new file mode 100644 index 0000000000..fbe6da2572 --- /dev/null +++ b/openedx/core/djangoapps/zendesk_proxy/apps.py @@ -0,0 +1,40 @@ +""" +Zendesk Proxy Configuration + +""" + +from django.apps import AppConfig + +from openedx.core.djangoapps.plugins.constants import ProjectType, SettingsType, PluginURLs, PluginSettings + + +class ZendeskProxyConfig(AppConfig): + """ + AppConfig for zendesk proxy app + """ + name = 'openedx.core.djangoapps.zendesk_proxy' + + plugin_app = { + PluginURLs.CONFIG: { + ProjectType.CMS: { + PluginURLs.NAMESPACE: u'', + PluginURLs.REGEX: r'^zendesk_proxy/', + PluginURLs.RELATIVE_PATH: u'urls', + }, + ProjectType.LMS: { + PluginURLs.NAMESPACE: u'', + PluginURLs.REGEX: r'^zendesk_proxy/', + PluginURLs.RELATIVE_PATH: u'urls', + } + }, + PluginSettings.CONFIG: { + ProjectType.CMS: { + SettingsType.COMMON: {PluginSettings.RELATIVE_PATH: u'settings.common'}, + SettingsType.AWS: {PluginSettings.RELATIVE_PATH: u'settings.aws'}, + }, + ProjectType.LMS: { + SettingsType.COMMON: {PluginSettings.RELATIVE_PATH: u'settings.common'}, + SettingsType.AWS: {PluginSettings.RELATIVE_PATH: u'settings.aws'}, + } + } + } diff --git a/openedx/core/djangoapps/zendesk_proxy/settings/__init__.py b/openedx/core/djangoapps/zendesk_proxy/settings/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/openedx/core/djangoapps/zendesk_proxy/settings/aws.py b/openedx/core/djangoapps/zendesk_proxy/settings/aws.py new file mode 100644 index 0000000000..93635bfbe3 --- /dev/null +++ b/openedx/core/djangoapps/zendesk_proxy/settings/aws.py @@ -0,0 +1,6 @@ +""" Production settings for zendesk proxy.""" + + +def plugin_settings(settings): + settings.ZENDESK_URL = settings.ENV_TOKENS.get('ZENDESK_URL', settings.ZENDESK_URL) + settings.ZENDESK_OAUTH_ACCESS_TOKEN = settings.AUTH_TOKENS.get("ZENDESK_OAUTH_ACCESS_TOKEN") diff --git a/openedx/core/djangoapps/zendesk_proxy/settings/common.py b/openedx/core/djangoapps/zendesk_proxy/settings/common.py new file mode 100644 index 0000000000..76135cdb18 --- /dev/null +++ b/openedx/core/djangoapps/zendesk_proxy/settings/common.py @@ -0,0 +1,6 @@ +""" Common settings for zendesk proxy.""" + + +def plugin_settings(settings): + settings.ZENDESK_URL = None + settings.ZENDESK_OAUTH_ACCESS_TOKEN = None diff --git a/setup.py b/setup.py index 0e9845e2e0..2482d00795 100644 --- a/setup.py +++ b/setup.py @@ -71,6 +71,7 @@ setup( "theming = openedx.core.djangoapps.theming.apps:ThemingConfig", "instructor = lms.djangoapps.instructor.apps:InstructorConfig", "bookmarks = openedx.core.djangoapps.bookmarks.apps:BookmarksConfig", + "zendesk_proxy = openedx.core.djangoapps.zendesk_proxy.apps:ZendeskProxyConfig", ], "cms.djangoapp": [ "ace_common = openedx.core.djangoapps.ace_common.apps:AceCommonConfig", @@ -78,6 +79,7 @@ setup( "schedules = openedx.core.djangoapps.schedules.apps:SchedulesConfig", "theming = openedx.core.djangoapps.theming.apps:ThemingConfig", "bookmarks = openedx.core.djangoapps.bookmarks.apps:BookmarksConfig", + "zendesk_proxy = openedx.core.djangoapps.zendesk_proxy.apps:ZendeskProxyConfig", ], } )