def test_login_as_user_query_user_data(self): self._send_user_to_es(user_data={'wild': 'child', 'wall': 'flower'}) self._send_user_to_es(user_data={}) self._send_user_to_es() self._send_user_to_es(user_data={'wild': 'wrong'}) self.assertEqual( login_as_user_query( self.domain, MagicMock(), 'child', 10, 0, user_data_fields=['wild'], ).count(), 1 ) # Do not fuzzy match self.assertEqual( login_as_user_query( self.domain, MagicMock(), 'chil', 10, 0, user_data_fields=['wild'], ).count(), 0 )
def test_login_as_user_query_user_data(self): self._send_user_to_es(user_data={'wild': 'child', 'wall': 'flower'}) self._send_user_to_es(user_data={}) self._send_user_to_es() self._send_user_to_es(user_data={'wild': 'wrong'}) self.assertEqual( login_as_user_query( self.domain, MagicMock(), 'child', 10, 0, user_data_fields=['wild'], ).count(), 1) # Do not fuzzy match self.assertEqual( login_as_user_query( self.domain, MagicMock(), 'chil', 10, 0, user_data_fields=['wild'], ).count(), 0)
def _user_query(self, search_string, page, limit): user_data_fields = [] return login_as_user_query(self.domain, self.couch_user, search_string, limit, page * limit, user_data_fields=user_data_fields)
def _user_query(self, search_string, page, limit): return login_as_user_query( self.domain, self.couch_user, search_string, limit, page * limit, )
def test_limited_users(self): self._send_user_to_es(username='******') self._send_user_to_es(username='******', user_data={'login_as_user': '******'}) with patch('corehq.apps.cloudcare.esaccessors._limit_login_as', return_value=True): self.assertEqual( login_as_user_query(self.domain, MagicMock(username='******'), None, 10, 0, []).count(), 1)
def _user_query(self, search_string, page, limit): user_data_fields = [] if toggles.ENIKSHAY.enabled(self.domain): user_data_fields = ['id_issuer_number'] return login_as_user_query(self.domain, self.couch_user, search_string, limit, page * limit, user_data_fields=user_data_fields)
def _user_query(self, search_string, page, limit): user_data_fields = [] return login_as_user_query( self.domain, self.couch_user, search_string, limit, page * limit, user_data_fields=user_data_fields )
def test_login_as_user_query_all(self): self._send_user_to_es(username='******') self._send_user_to_es(username='******') self.assertEqual( login_as_user_query( self.domain, MagicMock(), None, 10, 0, ).count(), 2, )
def test_login_as_user_query_all(self): self._send_user_to_es(username='******') self._send_user_to_es(username='******') self.assertEqual( login_as_user_query( self.domain, MagicMock(), None, 10, 0, ).count(), 2, )
def test_login_as_user_query_username(self): self._send_user_to_es(username='******') self._send_user_to_es(username='******') self._send_user_to_es(username='******') self.assertEqual( login_as_user_query( self.domain, MagicMock(), 'super', 10, 0, ).count(), 2, )
def test_login_as_user_query_username(self): self._send_user_to_es(username='******') self._send_user_to_es(username='******') self._send_user_to_es(username='******') self.assertEqual( login_as_user_query( self.domain, MagicMock(), 'super', 10, 0, ).count(), 2, )
def test_login_as_user_query_username_or_user_data(self): self._send_user_to_es(username='******') self._send_user_to_es(username='******', user_data={'wild': 'nope'}) self._send_user_to_es(username='******', user_data={'wild': 'super'}) self._send_user_to_es(username='******', user_data={'wild': 'super'}) self.assertEqual( login_as_user_query( self.domain, MagicMock(), 'super', 10, 0, user_data_fields=['wild'], ).count(), 3, )
def test_login_as_user_query_username_or_user_data(self): self._send_user_to_es(username='******') self._send_user_to_es(username='******', user_data={'wild': 'nope'}) self._send_user_to_es(username='******', user_data={'wild': 'super'}) self._send_user_to_es(username='******', user_data={'wild': 'super'}) self.assertEqual( login_as_user_query( self.domain, MagicMock(), 'super', 10, 0, user_data_fields=['wild'], ).count(), 3, )
def get_restore_as_user(request, domain): """ returns (user, set_cookie), where set_cookie is a function to be called on the eventual response """ if not hasattr(request, 'couch_user'): raise Http404() def set_cookie(response): # set_coookie is a noop by default return response cookie_name = urllib.parse.quote('restoreAs:{}:{}'.format( domain, request.couch_user.username)) username = request.COOKIES.get(cookie_name) if username: user = CouchUser.get_by_username(format_username(username, domain)) if user: return user, set_cookie else: def set_cookie( response): # overwrite the default noop set_cookie response.delete_cookie(cookie_name) return response elif request.couch_user.has_permission(domain, 'limited_login_as'): login_as_users = login_as_user_query(domain, request.couch_user, search_string='', limit=1, offset=0).run() if login_as_users.total == 1: def set_cookie(response): response.set_cookie(cookie_name, user.raw_username, secure=settings.SECURE_COOKIES) return response user = CouchUser.get_by_username( login_as_users.hits[0]['username']) return user, set_cookie return request.couch_user, set_cookie