diff --git a/seahub/api2/endpoints/admin/file_audit.py b/seahub/api2/endpoints/admin/file_audit.py index 07e9031f2d..d8968ed224 100644 --- a/seahub/api2/endpoints/admin/file_audit.py +++ b/seahub/api2/endpoints/admin/file_audit.py @@ -15,7 +15,7 @@ from seahub.api2.utils import api_error from seahub.base.templatetags.seahub_tags import email2nickname from seahub.utils.timeutils import datetime_to_isoformat_timestr -from seahub.utils import EVENTS_ENABLED +from seahub.utils import is_pro_version class FileAudit(APIView): @@ -25,7 +25,7 @@ class FileAudit(APIView): def get(self, request): - if not EVENTS_ENABLED: + if not is_pro_version(): error_msg = 'Feature disabled.' return api_error(status.HTTP_403_FORBIDDEN, error_msg) diff --git a/seahub/api2/endpoints/admin/file_update.py b/seahub/api2/endpoints/admin/file_update.py index af94565f69..03870c9af3 100644 --- a/seahub/api2/endpoints/admin/file_update.py +++ b/seahub/api2/endpoints/admin/file_update.py @@ -15,7 +15,7 @@ from seahub.api2.utils import api_error from seahub.base.templatetags.seahub_tags import email2nickname from seahub.utils.timeutils import datetime_to_isoformat_timestr -from seahub.utils import EVENTS_ENABLED +from seahub.utils import is_pro_version class FileUpdate(APIView): @@ -25,7 +25,7 @@ class FileUpdate(APIView): def get(self, request): - if not EVENTS_ENABLED: + if not is_pro_version(): error_msg = 'Feature disabled.' return api_error(status.HTTP_403_FORBIDDEN, error_msg) diff --git a/seahub/api2/endpoints/admin/login.py b/seahub/api2/endpoints/admin/login.py index e511bb8dd2..500eafaae2 100644 --- a/seahub/api2/endpoints/admin/login.py +++ b/seahub/api2/endpoints/admin/login.py @@ -8,8 +8,8 @@ from rest_framework import status from .utils import check_time_period_valid from seahub.base.templatetags.seahub_tags import email2nickname -from seahub_extra.sysadmin_extra.models import UserLoginLog from seahub.utils.timeutils import datetime_to_isoformat_timestr +from seahub.utils import is_pro_version from seahub.api2.authentication import TokenAuthentication from seahub.api2.throttling import UserRateThrottle from seahub.api2.utils import api_error @@ -24,6 +24,10 @@ class Login(APIView): def get(self, request): + if not is_pro_version(): + error_msg = 'Feature disabled.' + return api_error(status.HTTP_403_FORBIDDEN, error_msg) + # check the date format, should be like '2015-10-10' start = request.GET.get('start', None) end = request.GET.get('end', None) @@ -37,6 +41,7 @@ class Login(APIView): end = end + ' 23:59:59' result = [] + from seahub_extra.sysadmin_extra.models import UserLoginLog logs = UserLoginLog.objects.filter(login_date__range=(start, end)) for log in logs: result.append({ diff --git a/seahub/api2/endpoints/admin/perm_audit.py b/seahub/api2/endpoints/admin/perm_audit.py index 76872d02af..37ca3201f5 100644 --- a/seahub/api2/endpoints/admin/perm_audit.py +++ b/seahub/api2/endpoints/admin/perm_audit.py @@ -15,7 +15,7 @@ from seahub.api2.utils import api_error from seahub.base.templatetags.seahub_tags import email2nickname from seahub.utils.timeutils import datetime_to_isoformat_timestr -from seahub.utils import EVENTS_ENABLED +from seahub.utils import is_pro_version class PermAudit(APIView): @@ -25,9 +25,10 @@ class PermAudit(APIView): def get(self, request): - if not EVENTS_ENABLED: + if not is_pro_version(): error_msg = 'Feature disabled.' return api_error(status.HTTP_403_FORBIDDEN, error_msg) + # check the date format, should be like '2015-10-10' start = request.GET.get('start', None) end = request.GET.get('end', None) diff --git a/tests/api/endpoints/admin/test_file_audit_log.py b/tests/api/endpoints/admin/test_file_audit_log.py index 1a776e2d5b..37e13f4d8e 100644 --- a/tests/api/endpoints/admin/test_file_audit_log.py +++ b/tests/api/endpoints/admin/test_file_audit_log.py @@ -5,10 +5,19 @@ from mock import patch from django.core.urlresolvers import reverse from seahub.test_utils import BaseTestCase +try: + from seahub.settings import LOCAL_PRO_DEV_ENV +except ImportError: + LOCAL_PRO_DEV_ENV = False + class AccountTest(BaseTestCase): @patch('seahub.views.file.is_pro_version') def test_can_not_get_if_start_time_invalid(self, mock_is_pro_version): + + if not LOCAL_PRO_DEV_ENV: + return + mock_is_pro_version.return_value = True self.login_as(self.admin) @@ -25,6 +34,10 @@ class AccountTest(BaseTestCase): @patch('seahub.views.file.is_pro_version') def test_can_not_get_if_end_time_invalid(self, mock_is_pro_version): + + if not LOCAL_PRO_DEV_ENV: + return + mock_is_pro_version.return_value = True self.login_as(self.admin) @@ -40,6 +53,10 @@ class AccountTest(BaseTestCase): self.assertEqual(400, resp.status_code) def test_can_not_get_if_not_admin(self): + + if not LOCAL_PRO_DEV_ENV: + return + self.login_as(self.user) start_timestamp = time.time() - 7 * 24 * 60 * 60 diff --git a/tests/api/endpoints/admin/test_file_update_log.py b/tests/api/endpoints/admin/test_file_update_log.py index 0fbe7d7ccb..fe1d0e8f53 100644 --- a/tests/api/endpoints/admin/test_file_update_log.py +++ b/tests/api/endpoints/admin/test_file_update_log.py @@ -5,10 +5,19 @@ from mock import patch from django.core.urlresolvers import reverse from seahub.test_utils import BaseTestCase +try: + from seahub.settings import LOCAL_PRO_DEV_ENV +except ImportError: + LOCAL_PRO_DEV_ENV = False + class AccountTest(BaseTestCase): @patch('seahub.views.file.is_pro_version') def test_can_not_get_if_start_time_invalid(self, mock_is_pro_version): + + if not LOCAL_PRO_DEV_ENV: + return + mock_is_pro_version.return_value = True self.login_as(self.admin) @@ -25,6 +34,10 @@ class AccountTest(BaseTestCase): @patch('seahub.views.file.is_pro_version') def test_can_not_get_if_end_time_invalid(self, mock_is_pro_version): + + if not LOCAL_PRO_DEV_ENV: + return + mock_is_pro_version.return_value = True self.login_as(self.admin) @@ -40,6 +53,10 @@ class AccountTest(BaseTestCase): self.assertEqual(400, resp.status_code) def test_can_not_get_if_not_admin(self): + + if not LOCAL_PRO_DEV_ENV: + return + self.login_as(self.user) start_timestamp = time.time() - 7 * 24 * 60 * 60 diff --git a/tests/api/endpoints/admin/test_login_log.py b/tests/api/endpoints/admin/test_login_log.py index fb21509492..dcb56c1375 100644 --- a/tests/api/endpoints/admin/test_login_log.py +++ b/tests/api/endpoints/admin/test_login_log.py @@ -5,8 +5,18 @@ import datetime from django.core.urlresolvers import reverse from seahub.test_utils import BaseTestCase -class AccountTest(BaseTestCase): +try: + from seahub.settings import LOCAL_PRO_DEV_ENV +except ImportError: + LOCAL_PRO_DEV_ENV = False + +class LoginLogTest(BaseTestCase): + def test_get_login_log(self): + + if not LOCAL_PRO_DEV_ENV: + return + self.login_as(self.admin) end_timestamp = time.time() @@ -22,6 +32,10 @@ class AccountTest(BaseTestCase): assert json_resp[0]['email'] == self.admin.email def test_can_not_get_if_start_time_invalid(self): + + if not LOCAL_PRO_DEV_ENV: + return + self.login_as(self.admin) end_timestamp = time.time() @@ -35,6 +49,10 @@ class AccountTest(BaseTestCase): self.assertEqual(400, resp.status_code) def test_can_not_get_if_end_time_invalid(self): + + if not LOCAL_PRO_DEV_ENV: + return + self.login_as(self.admin) end_timestamp = time.time() @@ -48,6 +66,10 @@ class AccountTest(BaseTestCase): self.assertEqual(400, resp.status_code) def test_can_not_get_if_not_admin(self): + + if not LOCAL_PRO_DEV_ENV: + return + self.login_as(self.user) end_timestamp = time.time() diff --git a/tests/api/endpoints/admin/test_perm_audit_log.py b/tests/api/endpoints/admin/test_perm_audit_log.py index 9ae9c7b5ff..f6fac23020 100644 --- a/tests/api/endpoints/admin/test_perm_audit_log.py +++ b/tests/api/endpoints/admin/test_perm_audit_log.py @@ -5,10 +5,19 @@ from mock import patch from django.core.urlresolvers import reverse from seahub.test_utils import BaseTestCase +try: + from seahub.settings import LOCAL_PRO_DEV_ENV +except ImportError: + LOCAL_PRO_DEV_ENV = False + class AccountTest(BaseTestCase): @patch('seahub.views.file.is_pro_version') def test_can_not_get_if_start_time_invalid(self, mock_is_pro_version): + + if not LOCAL_PRO_DEV_ENV: + return + mock_is_pro_version.return_value = True self.login_as(self.admin) @@ -25,6 +34,10 @@ class AccountTest(BaseTestCase): @patch('seahub.views.file.is_pro_version') def test_can_not_get_if_end_time_invalid(self, mock_is_pro_version): + + if not LOCAL_PRO_DEV_ENV: + return + mock_is_pro_version.return_value = True self.login_as(self.admin) @@ -40,6 +53,10 @@ class AccountTest(BaseTestCase): self.assertEqual(400, resp.status_code) def test_can_not_get_if_not_admin(self): + + if not LOCAL_PRO_DEV_ENV: + return + self.login_as(self.user) start_timestamp = time.time() - 7 * 24 * 60 * 60