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