Esempio n. 1
0
def parse_web_users(domain, task=None, total_count=None):
    user_dicts = []
    max_location_length = 0
    location_cache = LocationIdToSiteCodeCache(domain)
    for n, user in enumerate(get_all_user_rows(domain, include_web_users=True, include_mobile_users=False,
                                               include_inactive=False, include_docs=True)):
        user_dict = make_web_user_dict(user, location_cache, domain)
        user_dicts.append(user_dict)
        max_location_length = max(max_location_length, len(user_dict["location_code"]))
        if task:
            DownloadBase.set_progress(task, n, total_count)
    for m, invite in enumerate(Invitation.by_domain(domain)):
        user_dict = make_invited_web_user_dict(invite, location_cache)
        user_dicts.append(user_dict)
        if task:
            DownloadBase.set_progress(task, n + m, total_count)

    user_headers = [
        'username', 'first_name', 'last_name', 'email', 'role', 'last_access_date (read only)',
        'last_login (read only)', 'status', 'remove'
    ]
    if domain_has_privilege(domain, privileges.LOCATIONS):
        user_headers.extend(json_to_headers(
            {'location_code': list(range(1, max_location_length + 1))}
        ))
    return user_headers, get_user_rows(user_dicts, user_headers)
Esempio n. 2
0
    def rows_for_domain(self, domain_obj):

        rows = []
        for user in get_all_user_rows(domain_obj.name,
                                      include_web_users=True,
                                      include_mobile_users=False,
                                      include_inactive=False,
                                      include_docs=True):
            user = CouchUser.wrap_correctly(user['doc'])
            domain_membership = user.get_domain_membership(domain_obj.name)
            last_accessed_domain = None
            if domain_membership:
                last_accessed_domain = domain_membership.last_accessed
            rows.append([
                user.username, user.full_name,
                user.role_label(domain_obj.name),
                self.format_date(user.last_login), last_accessed_domain,
                _('Active User')
            ] + self.domain_properties(domain_obj))
        for invite in Invitation.by_domain(domain_obj.name):
            rows.append([
                invite.email, 'N/A',
                invite.get_role_name(), 'N/A', 'N/A',
                _('Invited')
            ] + self.domain_properties(domain_obj))
        return rows
Esempio n. 3
0
 def rows_for_domain(self, domain_obj):
     rows = []
     for user in get_all_user_rows(domain_obj.name, include_web_users=True, include_mobile_users=False,
                                   include_inactive=False, include_docs=True):
         user = CouchUser.wrap_correctly(user['doc'])
         rows.append([
             user.full_name,
             user.username,
             user.role_label(domain_obj.name),
             self.format_date(user.last_login),
         ] + self.domain_properties(domain_obj))
     return rows
Esempio n. 4
0
 def rows_for_domain(self, domain_obj):
     rows = []
     for user in get_all_user_rows(domain_obj.name, include_web_users=False, include_mobile_users=True,
                                   include_inactive=False, include_docs=True):
         user = CouchUser.wrap_correctly(user['doc'])
         rows.append([
             re.sub(r'@.*', '', user.username),
             user.full_name,
             self.format_date(user.created_on),
             self.format_date(user.reporting_metadata.last_sync_for_user.sync_date),
             self.format_date(user.reporting_metadata.last_submission_for_user.submission_date),
             user.reporting_metadata.last_submission_for_user.commcare_version or '',
         ] + self.domain_properties(domain_obj))
     return rows
 def _web_user_rows(self, domain):
     rows = []
     for user in get_all_user_rows(domain.name,
                                   include_web_users=True,
                                   include_mobile_users=False,
                                   include_inactive=False,
                                   include_docs=True):
         user = WebUser.wrap(user['doc'])
         rows.append([
             user.full_name,
             user.username,
             user.role_label(domain.name),
             self._format_date(user.last_login),
         ] + self._domain_properties(domain))
     return rows
Esempio n. 6
0
 def rows_for_domain(self, domain_obj):
     rows = []
     for user in get_all_user_rows(domain_obj.name,
                                   include_web_users=True,
                                   include_mobile_users=False,
                                   include_inactive=False,
                                   include_docs=True):
         user = CouchUser.wrap_correctly(user['doc'])
         rows.append([
             user.full_name,
             user.username,
             user.role_label(domain_obj.name),
             self.format_date(user.last_login),
         ] + self.domain_properties(domain_obj))
     return rows
Esempio n. 7
0
    def build_table(self):

        for domain in Domain.get_all():
            logger.info("Building MALT for {}".format(domain.name))

            for monthspan in self.monthspan_list:
                all_users = get_all_user_rows(domain.name, include_inactive=False, include_docs=True)
                for users in chunked(all_users, 1000):
                    users_by_id = {user['id']: CouchUser.wrap_correctly(user['doc']) for user in users}
                    try:
                        malt_rows_to_save = self._get_malt_row_dicts(domain.name, monthspan, users_by_id)
                    except Exception as ex:
                        logger.error("Failed to get rows for domain {name}. Exception is {ex}".format
                                    (name=domain.name, ex=str(ex)), exc_info=True)
                    if malt_rows_to_save:
                        self._save_to_db(malt_rows_to_save, domain._id)
Esempio n. 8
0
    def build_table(self):

        for domain in Domain.get_all():
            logger.info("Building MALT for {}".format(domain.name))

            for monthspan in self.monthspan_list:
                all_users = get_all_user_rows(domain.name, include_inactive=False, include_docs=True)
                for users in chunked(all_users, 1000):
                    users_by_id = {user['id']: CouchUser.wrap_correctly(user['doc']) for user in users}
                    try:
                        malt_rows_to_save = self._get_malt_row_dicts(domain.name, monthspan, users_by_id)
                    except Exception as ex:
                        logger.error("Failed to get rows for domain {name}. Exception is {ex}".format
                                    (name=domain.name, ex=str(ex)), exc_info=True)
                    if malt_rows_to_save:
                        self._save_to_db(malt_rows_to_save, domain._id)
Esempio n. 9
0
 def rows_for_domain(self, domain_obj):
     rows = []
     for user in get_all_user_rows(domain_obj.name,
                                   include_web_users=False,
                                   include_mobile_users=True,
                                   include_inactive=False,
                                   include_docs=True):
         user = CouchUser.wrap_correctly(user['doc'])
         rows.append([
             re.sub(r'@.*', '', user.username), user.full_name, user.email,
             self.format_date(user.created_on),
             self.format_date(
                 user.reporting_metadata.last_sync_for_user.sync_date),
             self.format_date(user.reporting_metadata.
                              last_submission_for_user.submission_date),
             user.reporting_metadata.last_submission_for_user.
             commcare_version or '', user.user_id
         ] + self.domain_properties(domain_obj))
     return rows
 def _mobile_user_rows(self, domain):
     rows = []
     for user in get_all_user_rows(domain.name,
                                   include_web_users=False,
                                   include_mobile_users=True,
                                   include_inactive=False,
                                   include_docs=True):
         user = CommCareUser.wrap(user['doc'])
         rows.append([
             re.sub(r'@.*', '', user.username),
             user.full_name,
             self._format_date(
                 user.reporting_metadata.last_sync_for_user.sync_date),
             self._format_date(user.reporting_metadata.
                               last_submission_for_user.submission_date),
             user.reporting_metadata.last_submission_for_user.
             commcare_version or '',
         ] + self._domain_properties(domain))
     return rows
Esempio n. 11
0
def parse_web_users(domain, task=None, total_count=None):
    user_dicts = []
    for n, user in enumerate(get_all_user_rows(domain, include_web_users=True, include_mobile_users=False,
                                               include_inactive=False, include_docs=True)):
        user_dict = make_web_user_dict(user, domain)
        user_dicts.append(user_dict)
        if task:
            DownloadBase.set_progress(task, n, total_count)
    for m, invite in enumerate(Invitation.by_domain(domain)):
        user_dict = make_invited_web_user_dict(invite)
        user_dicts.append(user_dict)
        if task:
            DownloadBase.set_progress(task, n + m, total_count)

    user_headers = [
        'username', 'first_name', 'last_name', 'email', 'role', 'last_access_date (read only)',
        'last_login (read only)', 'status', 'remove'
    ]
    return user_headers, get_user_rows(user_dicts, user_headers)
Esempio n. 12
0
    def rows_for_domain(self, domain_obj):
        def _get_role_name(role):
            if role:
                if role == 'admin':
                    return role
                else:
                    role_id = role[len('user-role:'):]
                    try:
                        return UserRole.get(role_id).name
                    except ResourceNotFound:
                        return _('Unknown Role')
            else:
                return 'N/A'

        rows = []
        for user in get_all_user_rows(domain_obj.name,
                                      include_web_users=True,
                                      include_mobile_users=False,
                                      include_inactive=False,
                                      include_docs=True):
            user = CouchUser.wrap_correctly(user['doc'])
            domain_membership = user.get_domain_membership(domain_obj.name)
            last_accessed_domain = None
            if domain_membership:
                last_accessed_domain = domain_membership.last_accessed
            rows.append([
                user.username, user.full_name,
                user.role_label(domain_obj.name),
                self.format_date(user.last_login), last_accessed_domain,
                _('Active User')
            ] + self.domain_properties(domain_obj))
        for invite in Invitation.by_domain(domain_obj.name):
            rows.append([
                invite.email, 'N/A',
                _get_role_name(invite.role), 'N/A', 'N/A',
                _('Invited')
            ] + self.domain_properties(domain_obj))
        return rows