def list_group_members(self, group, indirect_members=False):
        """ This methid lists members of a group. It does NOT include operators
        or moderators, unless they are also members.

        @type group: Cerebrum.Group
        @param group: The group to list members of

        @type indirect: bool
        @param indirect: If we should include indirect members
        """
        ac = self.account_class(self.db)
        gr = self.group_class(self.db)

        assert hasattr(group, 'entity_id')

        result = list()
        for x in group.search_members(group_id=group.entity_id,
                                      indirect_members=indirect_members):
            owner_name = None
            member_name = None
            email_address = None
            member_type = self.co.EntityType(x['member_type'])
            if member_type == self.co.entity_account:
                ac.clear()
                ac.find(x['member_id'])
                if ac.np_type in (self.co.fedaccount_type,
                                  self.co.virtaccount_type):
                    member_name = ac.account_name
                    owner_name = ac.get_owner_name(self.co.human_full_name)
                    email_address = ac.get_email_address()
            elif member_type == self.co.entity_group:
                gr.clear()
                gr.find(x['member_id'])
                member_name = gr.group_name
            result.append({'member_id': x['member_id'],
                           'member_type': str(member_type),
                           'member_name': member_name,
                           'owner_name': owner_name,
                           'email_address': email_address,})

        result.sort(lambda x, y: cmp(x['member_name'], y['member_name']))
        return result