示例#1
0
def _show_own_profile(user, form, can_update):
    user_dict = cached_users.get_user_summary(user.name)
    rank_and_score = cached_users.rank_and_score(user.id)
    user.rank = rank_and_score['rank']
    user.score = rank_and_score['score']
    user.total = cached_users.get_total_users()
    projects_contributed = cached_users.public_projects_contributed_cached(
        user.id)
    projects_published, projects_draft = _get_user_projects(user.id)
    cached_users.get_user_summary(user.name)

    response = dict(template='account/profile.html',
                    title=gettext("Profile"),
                    projects_contrib=projects_contributed,
                    projects_published=projects_published,
                    projects_draft=projects_draft,
                    user=user_dict,
                    form=form,
                    can_update=can_update,
                    private_instance=bool(data_access_levels),
                    upref_mdata_enabled=bool(app_settings.upref_mdata))

    response = make_response(handle_content_type(response))
    response.headers['Cache-Control'] = 'no-store'
    response.headers['Pragma'] = 'no-cache'
    return response
示例#2
0
文件: account.py 项目: jinwg/pybossa
def _show_public_profile(user, form):
    user_dict = cached_users.public_get_user_summary(user.name)
    projects_contributed = cached_users.public_projects_contributed_cached(
        user.id)
    projects_created = cached_users.public_published_projects_cached(user.id)

    can_update = False

    if (user.restrict is False and current_user.is_authenticated()
            and current_user.admin):
        draft_projects = cached_users.draft_projects(user.id)
        projects_created.extend(draft_projects)
        can_update = True

    if user.restrict is False:
        title = "%s · User Profile" % user_dict['fullname']
    else:
        title = "User data is restricted"
        projects_contributed = []
        projects_created = []
        form = None
    response = dict(template='/account/public_profile.html',
                    title=title,
                    user=user_dict,
                    projects=projects_contributed,
                    projects_created=projects_created,
                    form=form,
                    can_update=can_update,
                    input_form=False)

    return handle_content_type(response)
示例#3
0
def _show_public_profile(user, form, can_update):
    if current_user.id == user.id:
        user_dict = cached_users.get_user_summary(user.name)
    else:
        user_dict = cached_users.public_get_user_summary(user.name)
    if current_user.admin:
        user_dict['email_addr'] = user.email_addr
    projects_contributed = cached_users.public_projects_contributed_cached(
        user.id)
    projects_created = cached_users.public_published_projects_cached(user.id)
    total_projects_contributed = '{} / {}'.format(
        cached_users.n_projects_contributed(user.id), n_published())
    percentage_tasks_completed = user_dict['n_answers'] * 100 / (
        n_total_tasks() or 1)

    if current_user.is_authenticated() and current_user.admin:
        draft_projects = cached_users.draft_projects(user.id)
        projects_created.extend(draft_projects)

    title = "%s · User Profile" % user_dict['fullname']
    response = dict(template='/account/public_profile.html',
                    title=title,
                    user=user_dict,
                    projects=projects_contributed,
                    projects_created=projects_created,
                    total_projects_contributed=total_projects_contributed,
                    percentage_tasks_completed=percentage_tasks_completed,
                    form=form,
                    can_update=can_update,
                    private_instance=bool(data_access_levels),
                    upref_mdata_enabled=bool(app_settings.upref_mdata))

    return handle_content_type(response)
示例#4
0
def _show_public_profile(user, form):
    user_dict = cached_users.public_get_user_summary(user.name)
    projects_contributed = cached_users.public_projects_contributed_cached(user.id)
    projects_created = cached_users.public_published_projects_cached(user.id)

    can_update = False

    if (user.restrict is False and
        current_user.is_authenticated() and
            current_user.admin):
        draft_projects = cached_users.draft_projects(user.id)
        projects_created.extend(draft_projects)
        can_update = True

    if user.restrict is False:
        title = "%s · User Profile" % user_dict['fullname']
    else:
        title = "User data is restricted"
        projects_contributed = []
        projects_created = []
        form = None
    response = dict(template='/account/public_profile.html',
                    title=title,
                    user=user_dict,
                    projects=projects_contributed,
                    projects_created=projects_created,
                    form=form,
                    can_update=can_update,
                    input_form=False)

    return handle_content_type(response)
示例#5
0
    def test_public_projects_contributed_no_contributions_cached(self):
        """Test public CACHE USERS projects_contributed_cached returns empty list if the user has
        not contributed to any project"""
        user = UserFactory.create()

        projects_contributed = cached_users.public_projects_contributed_cached(user.id)

        assert projects_contributed == [], projects_contributed
示例#6
0
    def test_public_projects_contributed_no_contributions_cached(self):
        """Test public CACHE USERS projects_contributed_cached returns empty list if the user has
        not contributed to any project"""
        user = UserFactory.create()

        projects_contributed = cached_users.public_projects_contributed_cached(user.id)

        assert projects_contributed == [], projects_contributed
示例#7
0
文件: account.py 项目: fiorda/pybossa
def _show_own_profile(user):
    user_dict = cached_users.get_user_summary(user.name)
    rank_and_score = cached_users.rank_and_score(user.id)
    user.rank = rank_and_score['rank']
    user.score = rank_and_score['score']
    user.total = cached_users.get_total_users()
    projects_contributed = cached_users.public_projects_contributed_cached(user.id)
    projects_published, projects_draft = _get_user_projects(user.id)
    cached_users.get_user_summary(user.name)

    response = dict(template='account/profile.html', title=gettext("Profile"),
                    projects_contrib=projects_contributed,
                    projects_published=projects_published,
                    projects_draft=projects_draft,
                    user=user_dict)

    return handle_content_type(response)
示例#8
0
文件: account.py 项目: fiorda/pybossa
def _show_public_profile(user):
    user_dict = cached_users.public_get_user_summary(user.name)
    projects_contributed = cached_users.public_projects_contributed_cached(user.id)
    projects_created = cached_users.public_published_projects_cached(user.id)

    if current_user.is_authenticated() and current_user.admin:
        draft_projects = cached_users.draft_projects(user.id)
        projects_created.extend(draft_projects)
    title = "%s · User Profile" % user_dict['fullname']

    response = dict(template='/account/public_profile.html',
                    title=title,
                    user=user_dict,
                    projects=projects_contributed,
                    projects_created=projects_created)

    return handle_content_type(response)
示例#9
0
def _show_own_profile(user):
    user_dict = cached_users.get_user_summary(user.name)
    rank_and_score = cached_users.rank_and_score(user.id)
    user.rank = rank_and_score['rank']
    user.score = rank_and_score['score']
    user.total = cached_users.get_total_users()
    projects_contributed = cached_users.public_projects_contributed_cached(user.id)
    projects_published, projects_draft = _get_user_projects(user.id)
    cached_users.get_user_summary(user.name)

    response = dict(template='account/profile.html', title=gettext("Profile"),
                    projects_contrib=projects_contributed,
                    projects_published=projects_published,
                    projects_draft=projects_draft,
                    user=user_dict)

    return handle_content_type(response)
示例#10
0
def _show_public_profile(user):
    user_dict = cached_users.public_get_user_summary(user.name)
    projects_contributed = cached_users.public_projects_contributed_cached(user.id)
    projects_created = cached_users.public_published_projects_cached(user.id)

    if current_user.is_authenticated() and current_user.admin:
        draft_projects = cached_users.draft_projects(user.id)
        projects_created.extend(draft_projects)
    title = "%s · User Profile" % user_dict['fullname']

    response = dict(template='/account/public_profile.html',
                    title=title,
                    user=user_dict,
                    projects=projects_contributed,
                    projects_created=projects_created)

    return handle_content_type(response)
示例#11
0
    def test_public_projects_contributed_contributions_cached(self):
        """Test CACHE USERS public cached projects_contributed returns a list of projects that has
        contributed to"""
        user = UserFactory.create()
        project_contributed = ProjectFactory.create()
        task = TaskFactory.create(project=project_contributed)
        TaskRunFactory.create(task=task, user=user)
        another_project = ProjectFactory.create()

        projects_contributed = cached_users.public_projects_contributed_cached(user.id)

        assert len(projects_contributed) == 1
        assert projects_contributed[0]['short_name'] == project_contributed.short_name, projects_contributed

        # check privacy
        err_msg = 'private information is in public record'
        assert 'secret_key' not in projects_contributed[0], err_msg
        assert 'onesignal' not in projects_contributed[0]['info']
        assert 'passwd_hash' not in projects_contributed[0]['info']
示例#12
0
    def test_public_projects_contributed_contributions_cached(self):
        """Test CACHE USERS public cached projects_contributed returns a list of projects that has
        contributed to"""
        user = UserFactory.create()
        project_contributed = ProjectFactory.create()
        task = TaskFactory.create(project=project_contributed)
        TaskRunFactory.create(task=task, user=user)
        another_project = ProjectFactory.create()

        projects_contributed = cached_users.public_projects_contributed_cached(user.id)

        assert len(projects_contributed) == 1
        assert projects_contributed[0]['short_name'] == project_contributed.short_name, projects_contributed

        # check privacy
        err_msg = 'private information is in public record'
        assert 'secret_key' not in projects_contributed[0], err_msg
        assert 'onesignal' not in projects_contributed[0]['info']
        assert 'passwd_hash' not in projects_contributed[0]['info']