Пример #1
0
    def delete_project(request, project_id):
        project = Project.objects.get(id=project_id)

        if not is_creator_or_staff(request.user, project):
            raise PermissionDenied()

        project.delete()
Пример #2
0
    def delete_event(request, event_id):
        event = Event.objects.get(id=event_id)

        if not is_creator_or_staff(request.user, event):
            raise PermissionDenied()

        event.delete()
Пример #3
0
    def delete_group(request, group_id):
        group = Group.objects.get(id=group_id)

        if not is_creator_or_staff(request.user, group):
            raise PermissionDenied()

        group.delete()
def get_event(request, event_id):
    event = Event.objects.get(id=event_id)

    if event is not None:
        if event.is_searchable or is_creator_or_staff(get_request_contributor(request), event):
            return JsonResponse(event.hydrate_to_json())
        else:
            return HttpResponseForbidden()
    else:
        return HttpResponse(status=404)
def get_group(request, group_id):
    group = Group.objects.get(id=group_id)

    if group is not None:
        if group.is_searchable or is_creator_or_staff(get_request_contributor(request), group):
            return JsonResponse(group.hydrate_to_json())
        else:
            return HttpResponseForbidden()
    else:
        return HttpResponse(status=404)
Пример #6
0
    def delete_project(request, project_id):
        project = Project.objects.get(id=project_id)

        if not is_creator_or_staff(request.user, project):
            raise PermissionDenied()

        linked_events = project.get_project_events()
        project.delete()
        # Refresh linked event tag counts
        for event in linked_events:
            ProjectSearchTagsCache.refresh(event=event)
        SitemapPages.update()
def event_delete_project(request, event_id):
    body = json.loads(request.body)
    event = Event.objects.get(id=event_id)
    project = Project.objects.get(id=body["project_id"])

    if event is not None and project is not None:
        if is_creator_or_staff(get_request_contributor(request), event):
            relationship = ProjectRelationship.objects.get(relationship_project=project.id, relationship_event=event.id)

            if relationship is not None:
                relationship.delete()
                return HttpResponse(status=204)

    return HttpResponse(status=404)
def group_delete_project(request, group_id):
    body = json.loads(request.body)
    group = Group.objects.get(id=group_id)
    project = Project.objects.get(id=body["project_id"])

    if group is not None and project is not None:
        if is_creator_or_staff(get_request_contributor(request), group):
            relationship = ProjectRelationship.objects.get(relationship_project=project.id, relationship_group=group.id)

            if relationship is not None:
                relationship.delete()
                return HttpResponse(status=204)

    return HttpResponse(status=404)
Пример #9
0
    def get_by_id_or_slug(slug, user=None):
        event = None
        if slug is not None:
            _slug = slug.strip().lower()
            if _slug.isnumeric():
                event = Event.objects.get(id=_slug)
                if event and event.is_private:
                    if not user or not user.is_authenticated or not is_creator_or_staff(
                            user, event):
                        raise PermissionDenied()
            elif len(_slug) > 0:
                event = Event.objects.filter(
                    event_slug=_slug).first() or NameRecord.get_event(_slug)

        return event
Пример #10
0
def event_add_project(request, event_id):
    body = json.loads(request.body)
    event = Event.objects.get(id=event_id)

    if event is not None and body["project_ids"] is not None:
        if not is_creator_or_staff(get_request_contributor(request), event):
            return HttpResponseForbidden()

        projects = Project.objects.filter(id__in=body["project_ids"])

        for project in projects:
            ProjectRelationship.create(event, project)

        return HttpResponse(status=204)
    else:
        return HttpResponse(status=404)