diff --git a/rhodecode/controllers/home.py b/rhodecode/controllers/home.py --- a/rhodecode/controllers/home.py +++ b/rhodecode/controllers/home.py @@ -37,7 +37,7 @@ from rhodecode.lib.base import BaseContr from rhodecode.lib.index import searcher_from_config from rhodecode.lib.ext_json import json from rhodecode.lib.utils import jsonify -from rhodecode.lib.utils2 import safe_unicode +from rhodecode.lib.utils2 import safe_unicode, str2bool from rhodecode.model.db import Repository, RepoGroup from rhodecode.model.repo import RepoModel from rhodecode.model.repo_group import RepoGroupModel @@ -259,13 +259,16 @@ class HomeController(BaseController): @jsonify def user_autocomplete_data(self): query = request.GET.get('query') + active = str2bool(request.GET.get('active') or True) repo_model = RepoModel() - _users = repo_model.get_users(name_contains=query) + _users = repo_model.get_users( + name_contains=query, only_active=active) if request.GET.get('user_groups'): # extend with user groups - _user_groups = repo_model.get_user_groups(name_contains=query) + _user_groups = repo_model.get_user_groups( + name_contains=query, only_active=active) _users = _users + _user_groups return {'suggestions': _users} @@ -275,9 +278,11 @@ class HomeController(BaseController): @jsonify def user_group_autocomplete_data(self): query = request.GET.get('query') + active = str2bool(request.GET.get('active') or True) repo_model = RepoModel() - _user_groups = repo_model.get_user_groups(name_contains=query) + _user_groups = repo_model.get_user_groups( + name_contains=query, only_active=active) _user_groups = _user_groups return {'suggestions': _user_groups} diff --git a/rhodecode/tests/functional/test_home.py b/rhodecode/tests/functional/test_home.py --- a/rhodecode/tests/functional/test_home.py +++ b/rhodecode/tests/functional/test_home.py @@ -133,6 +133,18 @@ class TestUserAutocompleteData(TestContr values = [suggestion['value'] for suggestion in result['suggestions']] assert user_name in values + def test_returns_inactive_users_when_active_flag_sent(self, user_util): + self.log_user() + user = user_util.create_user(is_active=False) + user_name = user.username + response = self.app.get( + url(controller='home', action='user_autocomplete_data', + user_groups='true', active='0'), + headers={'X-REQUESTED-WITH': 'XMLHttpRequest', }, status=200) + result = json.loads(response.body) + values = [suggestion['value'] for suggestion in result['suggestions']] + assert user_name in values + def test_returns_groups_when_user_groups_sent(self, user_util): self.log_user() group = user_util.create_user_group(user_groups_active=True) @@ -173,8 +185,10 @@ class TestUserAutocompleteData(TestContr headers={'X-REQUESTED-WITH': 'XMLHttpRequest', }, status=200) result = json.loads(response.body) - users_mock.assert_called_once_with(name_contains=query) - groups_mock.assert_called_once_with(name_contains=query) + users_mock.assert_called_once_with( + name_contains=query, only_active=True) + groups_mock.assert_called_once_with( + name_contains=query, only_active=True) assert len(result['suggestions']) == 20