def delete_role(request, project_name, role_id): """Takes in the role id and allows privileged users to delete the role.""" project = get_object_or_404(CollabProject, slug=project_name) project_id = project.id role = get_object_or_404(Role, id=role_id) if not project.admin.filter( id=request.user.id) and not request.user.is_superuser: request.user.message_set.create( message="You do not have privileges to delete roles!") return HttpResponseRedirect(project.get_absolute_url()) if role.name == 'AnonymousRole': request.user.message_set.create( message="You cannot delete the AnonymousRole!") return HttpResponseRedirect(project.get_absolute_url()) # If the requested role is of a different project, return to (a) project page. if role.project.id != project.id: request.user.message_set.create(message="That role does not exist!") return HttpResponseRedirect(project.get_absolute_url()) return delete_anything( request, role, reverse('roles_overview', kwargs={'project_name': project.slug}), reverse('roles_overview', kwargs={'project_name': project.slug}))
def delete_action(request, project_name, action_id): """Allows you to delete the action item. It verifys that the project and action item match.""" project = get_object_or_404(CollabProject, slug=project_name) project_id = project.id action_item = get_object_or_404(ActionItem, id=action_id) if not is_allowed(request, project_id, ActionItem._meta.verbose_name, 'Editable'): return handle_privilege( request, "You do not have privileges to edit action items!", action_item.get_absolute_url()) # If the requested action item is of a different project, return to (a) project page. if action_item.project.id != project.id: return handle_privilege( request, "The action item does not exist in that project!", project.get_absolute_url()) return delete_anything( request, action_item, reverse('action_overview', kwargs={'project_name': project.slug}), reverse('action_details', kwargs={ 'project_name': project.slug, 'action_id': action_id }))
def delete_issue(request, image_id): """ Delete an attachmemt. Currently, you have to be a group admin to do so. """ image = get_object_or_404(IssueImage, id=image_id) project = image.issue.issueset.project issue = image.issue if not (request.user in project.admin.all() or request.user.is_superuser): return handle_privilege(request, "You do not have privileges to delete images!", issue.get_absolute_url()) return delete_anything(request, image, reverse('issue_details', kwargs={'project_name': project.slug, 'issueset_id': issue.issueset.id, 'issue_id': issue.id}), reverse('issue_details', kwargs={'project_name': project.slug, 'issueset_id': issue.issueset.id, 'issue_id': issue.id}), project=project)
def delete_tele(request, project_name, tele_id): """Takes in the teleconference id and allows user with privileges to delete the teleconference.""" project = get_object_or_404(CollabProject, slug=project_name) project_id = project.id teleconference = get_object_or_404(TeleConference, id=tele_id) if not is_allowed(request, project_id, TeleConference._meta.verbose_name, 'Editable'): return handle_privilege(request, "You do not have privileges to edit teleconferences!", project.get_absolute_url()) # If the requested teleconference is of a different project, return to (a) project page. if teleconference.project.id != project.id: return handle_privilege(request, "That teleconference does not exist!", project.get_absolute_url()) return delete_anything(request, teleconference, reverse('tele_overview', kwargs={'project_name': teleconference.project.slug}), reverse('tele_details', kwargs={'project_name': teleconference.project.slug, 'tele_id': teleconference.id}))
def delete_issueset(request, project_name, issueset_id): """ Allows you to delete the action item. It verifys that the project and action item match. """ project = get_object_or_404(CollabProject, slug=project_name) project_id = project.id issueset = get_object_or_404(IssueSet, id=issueset_id) if not is_allowed(request, project_id, IssueSet._meta.verbose_name, 'Editable'): return handle_privilege(request, "You do not have privileges to edit issue lists!", issueset.get_absolute_url()) # If the requested action item is of a different project, return to (a) project page. if issueset.project.id != project.id: return handle_privilege(request, "The issue list does not exist in that project!", project.get_absolute_url()) return delete_anything(request, issueset, reverse('issuesets_overview', kwargs={'project_name': project.slug}), reverse('issueset_details', kwargs={'project_name': project.slug, 'issueset_id': issueset.id}))