Exemplo n.º 1
0
 def setUpClass(cls):
     super(PermissionsHelpersTest, cls).setUpClass()
     cls.domain = 'export-permissions-test'
     cls.admin_domain = 'export-permissions-test-admin'
     cls.web_user = WebUser(username='******',
                            domains=[cls.domain, cls.admin_domain])
     cls.web_user.domain_memberships = [
         DomainMembership(domain=cls.domain, role_id='MYROLE'),
         DomainMembership(domain=cls.admin_domain, is_admin=True)
     ]
     cls.permissions = Permissions()
Exemplo n.º 2
0
    def test_user_with_domain_membership(self, domain_membership_mock):
        couch_user = WebUser()
        domain_membership = DomainMembership()
        domain_membership_timezone = pytz.timezone('America/New_York')
        domain_membership.timezone = 'America/New_York'
        domain_membership_mock.return_value = domain_membership

        # if not override_global_tz
        self.assertEqual(get_timezone_for_user(couch_user, "test"),
                         DOMAIN_TIMEZONE)

        # if override_global_tz
        domain_membership.override_global_tz = True
        self.assertEqual(get_timezone_for_user(couch_user, "test"),
                         domain_membership_timezone)
Exemplo n.º 3
0
 def add_domain_membership(self, domain, **kwargs):
     for d in self.web_account.domain_memberships:
         if d.domain == domain:
             # membership already exists
             return
     self.web_account.domain_memberships.append(
         DomainMembership(domain=domain, **kwargs))
Exemplo n.º 4
0
 def setUpClass(cls):
     cls.domain = Domain.get_or_create_with_name(DOMAIN, is_active=True)
     cls.domain.commtrack_enabled = True
     cls.domain.save()
     cls.user = CommCareUser(domain=DOMAIN,
                             domain_membership=DomainMembership(
                                 domain=DOMAIN, location_id='1'))
     cls.restore_user = cls.user.to_ota_restore_user()
Exemplo n.º 5
0
 def make_mobile_worker(cls, username, domain=None):
     domain = domain or cls.domain
     user = CommCareUser(username=username, domain=domain)
     user.domain_membership = DomainMembership(domain=domain)
     doc = user._doc
     doc['username.exact'] = doc['username']
     UserESFake.save_doc(doc)
     return user
Exemplo n.º 6
0
 def setUpClass(cls):
     cls.domain = 'export-permissions-test'
     cls.web_user = WebUser(username='******',
                            domains=[cls.domain])
     cls.web_user.domain_memberships = [
         DomainMembership(domain=cls.domain, role_id='MYROLE')
     ]
     cls.permissions = Permissions()
Exemplo n.º 7
0
    def test_user_looks_ok(self):
        self.assertTrue(user_looks_ok(self.commcare_user))

        # bad
        self.commcare_user.domain_membership = DomainMembership(domain=self.domain)
        self.assertFalse(user_looks_ok(self.commcare_user))

        # good
        self.commcare_user.domain_membership = DomainMembership(domain=self.domain, role_id='123')
        self.assertTrue(user_looks_ok(self.commcare_user))

        # bad
        self.commcare_user.domain_membership = DomainMembership(domain=self.domain)
        self.assertFalse(user_looks_ok(self.commcare_user))

        # good
        del self.commcare_user.user_data['commcare_project']
        self.assertTrue(user_looks_ok(self.commcare_user))
Exemplo n.º 8
0
 def make_web_user(cls, email, domain=None):
     domain = domain or cls.domain
     domains = [domain]
     user = WebUser(username=email, domains=domains)
     user.domain_memberships = [DomainMembership(domain=domain)]
     doc = user._doc
     doc['username.exact'] = doc['username']
     doc['base_username'] = email
     UserESFake.save_doc(doc)
     return user
Exemplo n.º 9
0
def _mock_user(domain, permission_name, permission_allow):
    membership = DomainMembership(domain=domain)

    permissions = []
    if permission_allow is not None:
        permissions = [PermissionInfo(permission_name, permission_allow)]
    mock_role = Mock(permissions=Permissions.from_permission_list(permissions))
    # prime membership.role memoize cache (avoids DB lookup)
    setattr(membership, '_role_cache', {(): mock_role})

    return WebUser(domain_memberships=[membership])
Exemplo n.º 10
0
    def setUpClass(cls):
        super().setUpClass()
        cls.domain = 'emwf-filter-output-test'
        cls.user = WebUser(username='******', domains=[cls.domain])
        cls.user.domain_memberships = [
            DomainMembership(domain=cls.domain, role_id='MYROLE')
        ]
        from corehq.apps.reports.tests.filters.user_list import dummy_user_list

        for user in dummy_user_list:
            user_obj = CouchUser.get_by_username(user['username'])
            if user_obj:
                user_obj.delete('')
        cls.user_list = []
        for user in dummy_user_list:
            user_obj = CommCareUser.create(**user) if user['doc_type'] == 'CommcareUser'\
                else WebUser.create(**user)
            user_obj.save()
            cls.user_list.append(user_obj)
Exemplo n.º 11
0
    def setUpClass(cls):
        super().setUpClass()
        cls.domain = 'case-list-test'
        cls.user = WebUser(username='******', domains=[cls.domain])
        cls.user.domain_memberships = [
            DomainMembership(domain=cls.domain, role_id='admin')
        ]
        UserRole.init_domain_with_presets(cls.domain)
        cls.request_factory = RequestFactory()

        from corehq.apps.reports.tests.data.case_list_report_data import (
            dummy_case_list,
            dummy_user_list,
        )

        for user in dummy_user_list:
            user_obj = CouchUser.get_by_username(user['username'])
            if user_obj:
                user_obj.delete('')
        cls.user_list = []
        for user in dummy_user_list:
            user_obj = CommCareUser.create(**user) if user['doc_type'] == 'CommcareUser'\
                else WebUser.create(**user)
            user_obj.save()
            cls.user_list.append(user_obj)

        cls.case_list = []
        for case in dummy_case_list:
            cls.case_list.append(CommCareCase(**case))
        cls.es = get_es_new()
        ensure_index_deleted(USER_INDEX)
        ensure_index_deleted(CASE_INDEX)
        initialize_index_and_mapping(cls.es, USER_INDEX_INFO)
        initialize_index_and_mapping(cls.es, CASE_INDEX_INFO)
        initialize_index_and_mapping(cls.es, GROUP_INDEX_INFO)
        cls._send_users_to_es()
        cls._send_cases_to_es()
Exemplo n.º 12
0
from __future__ import print_function
from __future__ import absolute_import
from __future__ import unicode_literals
import json

from couchdbkit import ResourceNotFound
from django.core.management.base import BaseCommand, CommandError

from corehq.apps.change_feed.consumer.feed import KafkaChangeFeed
from corehq.apps.change_feed.topics import COMMCARE_USER, get_multi_topic_offset, \
    get_multi_topic_first_available_offsets
from corehq.apps.users.models import DomainMembership, CommCareUser
from corehq.util.decorators import change_log_level
from six.moves import input

defaults = DomainMembership().to_json()
del defaults['domain']
extra_keys = ['first_name', 'last_name', 'user_data']


class Command(BaseCommand):
    help = "See http://manage.dimagi.com/default.asp?245969 for context"

    def add_arguments(self, parser):
        parser.add_argument(
            '--offset-start',
            type=int,
            default=-1,
            help=
            'Kafka offset to start from. Defaults to first available offset')
        parser.add_argument(
Exemplo n.º 13
0
 def _reset_domain_membership(self):
     self.commcare_user.domain_membership = DomainMembership(domain=self.domain)
     self.commcare_user.save()
     self.assertFalse(user_looks_ok(self.commcare_user))
Exemplo n.º 14
0
def _mk_web_user(domains):
    return WebUser(domains=domains,
                   domain_memberships=[
                       DomainMembership(domain=domain) for domain in domains
                   ])
Exemplo n.º 15
0
def _mk_user(domain):
    return CommCareUser(domain=domain,
                        domain_membership=DomainMembership(domain=domain))