Exemple #1
0
def projects(request):

    if request.method == 'POST':

        from project_actions import add_user_to_project, remove_user_from_project
        from project_actions import add_group_to_project, remove_group_from_project

        if request.POST['action'] == 'add':
            project_id = request.POST['project_id']
            name = request.POST['name']
            pa_project = PAProject.objects.get(id=project_id)
            try:
                pa_user = PAUser.objects.get(name=name)
                add_user_to_project(pa_project, pa_user)
            except:
                pa_group = PAGroup.objects.get(name=name)
                add_group_to_project(pa_project, pa_group)

        elif request.POST['action'] == 'remove_user':
            project_access_id = request.POST['user_with_access_id']
            pa_project_access = PAUserProjectAccess.objects.get(id=project_access_id)
            remove_user_from_project(pa_project_access)
        elif request.POST['action'] == 'remove_group':
            project_access_id = request.POST['group_with_access_id']
            pa_project_access = PAGroupProjectAccess.objects.get(id=project_access_id)
            remove_group_from_project(pa_project_access)
        else:
            raise Exception("Unsupported POST action")

    template = loader.get_template('projects.html')
    context = RequestContext(request, {
        'projects': PAProject.objects.all(),
    })

    return HttpResponse(template.render(context))
 def create(self, request, project_pk):
     user_pk = request.data["id"]
     project = self.get_project(project_pk)
     user = PAUser.objects.get(id=user_pk)
     if not PAUserProjectAccess.objects.filter(project=project, user=user).exists():
         user_project_access = add_user_to_project(project, user)
         serializer = PAUserProjectAccessSerializer(user_project_access)
         return Response(serializer.data, status.HTTP_201_CREATED)
     else:
         return Response({u"detail": "User already has access to project"}, status.HTTP_400_BAD_REQUEST)
    def test_add_and_remove_user(self):

        with P4Connection(self.P4HOST, self.P4PORT, self.P4USER) as p4:
            project = None
            project_access = None
            try:
                project = create_new_project(self.PROJECT_NAME)
                project_access = add_user_to_project(project, self.user)
                remove_user_from_project(project_access)
            except:
                if project_access:
                    remove_user_from_project(project_access)
                if project:
                    delete_project(project)
                raise
    def test_add_and_remove_user(self):

        with P4ConnectionAsUnitTestUser() as p4:
            project = None
            project_access = None
            try:
                project = create_new_project(self.PROJECT_NAME)
                project_access = add_user_to_project(project, self.user)
                remove_user_from_project(project_access)
                project_access = None
                delete_project(project)
                project = None
            except:
                if project_access:
                    remove_user_from_project(project_access)
                if project:
                    delete_project(project)
                raise