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")
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))
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