Exemplo n.º 1
0
 def test_should_get_user_permission(self):
     user_permission = UserPermission(self.manager, 1, ["q1", "q2"])
     user_permission.save()
     saved_user_permission = get_user_permission(1, self.manager)
     self.assertEquals(saved_user_permission.project_ids, ["q1", "q2"],
                       "Questionnaires doesn't match")
     self.assertEquals(saved_user_permission.user_id, 1,
                       "User id doesn't match")
Exemplo n.º 2
0
def create_project(request):
    manager = get_database_manager(request.user)
    org = get_organization(request)
    is_active, project_active_id, project_active_name = get_active_form_model_name_and_id(
        manager)
    has_permission_on_active_project = True
    ngo_admin_email = get_ngo_admin_user_profiles_for(org)[0].user.email
    if is_active:
        user_permission = get_user_permission(user_id=request.user.id,
                                              dbm=manager)
        if user_permission is not None and project_active_id not in user_permission.project_ids:
            has_permission_on_active_project = False

    if request.method == 'GET':
        cancel_link = reverse('dashboard') if request.GET.get(
            'prev', None) == 'dash' else reverse('alldata_index')
        return render_to_response('project/create_project.html', {
            'preview_links':
            get_preview_and_instruction_links(),
            'questionnaire_code':
            helper.generate_questionnaire_code(manager),
            'is_edit':
            'false',
            'is_pro_sms':
            org.is_pro_sms,
            'active_language':
            request.LANGUAGE_CODE,
            'post_url':
            reverse(create_project),
            'unique_id_types':
            json.dumps([
                unique_id_type.capitalize()
                for unique_id_type in get_unique_id_types(manager)
            ]),
            'has_permission_on_active_project':
            has_permission_on_active_project,
            'ngo_admin_email':
            ngo_admin_email,
            'cancel_link':
            cancel_link,
            'is_active':
            is_active,
            'project_active_id':
            project_active_id,
            'project_active_name':
            project_active_name
        },
                                  context_instance=RequestContext(request))

    if request.method == 'POST':
        response_dict = _create_project_post_response(request, manager)
        return HttpResponse(json.dumps(response_dict))
Exemplo n.º 3
0
def dissociate_user_as_datasender_with_projects(reporter_id, user,
                                                previous_role,
                                                selected_questionnaires):
    manager = get_database_manager(user)

    if previous_role == 'Project Managers':
        user_permission = get_user_permission(user.id, manager)
        project_ids = user_permission.project_ids if user_permission else []
    elif previous_role == 'Extended Users':
        rows = get_all_projects(manager)
        project_ids = []
        for row in rows:
            project_ids.append(row['value']['_id'])

    remove_user_as_datasender_for_projects(manager, project_ids,
                                           selected_questionnaires,
                                           reporter_id)
    return