Эх сурвалжийг харах

HUE-9130 [about] Fix the update setting API and its test

Romain 5 жил өмнө
parent
commit
1a466bba83

+ 3 - 4
apps/about/src/about/tests.py

@@ -19,7 +19,6 @@ from builtins import object
 import json
 
 from django.urls import reverse
-
 from nose.tools import assert_true, assert_false, assert_equal
 
 from desktop.lib.django_test_util import make_logged_in_client
@@ -58,12 +57,12 @@ class TestAboutWithNoCluster(TestAboutBase):
     collect_usage = Settings.get_settings().collect_usage
 
     try:
-      response = self.client.post(reverse('about:update_preferences'), {'collect_usage': False})
+      response = self.client_admin.post(reverse('about:update_preferences'), {'collect_usage': False})
       data = json.loads(response.content)
       assert_equal(data['status'], 0)
-      assert_false(data['collect_usage'] == True) # Weird but works
+      assert_false(data['collect_usage'])
 
-      response = self.client.post(reverse('about:update_preferences'), {'collect_usage': True})
+      response = self.client_admin.post(reverse('about:update_preferences'), {'collect_usage': True})
       data = json.loads(response.content)
       assert_equal(data['status'], 0)
       assert_true(data['collect_usage'])

+ 5 - 3
apps/about/src/about/views.py

@@ -22,13 +22,13 @@ import logging
 from django.utils.translation import ugettext as _
 
 from desktop import appmanager
+from desktop.auth.backend import is_admin
+from desktop.auth.decorators import admin_required
 from desktop.lib.django_util import JsonResponse, render, login_notrequired
 from desktop.log.access import access_log_level
 from desktop.models import Settings, hue_version
 from desktop.views import collect_usage
 
-from desktop.auth.backend import is_admin
-
 
 def admin_wizard(request):
   if is_admin(request.user):
@@ -46,14 +46,16 @@ def admin_wizard(request):
   })
 
 
+@admin_required
 def update_preferences(request):
   response = {'status': -1, 'data': ''}
 
   if request.method == 'POST':
     try:
       settings = Settings.get_settings()
-      settings.collect_usage = request.POST.get('collect_usage', False)
+      settings.collect_usage = request.POST.get('collect_usage', 'False').lower() == "true"
       settings.save()
+
       response['status'] = 0
       response['collect_usage'] = settings.collect_usage
     except Exception as e: