示例#1
0
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}))
示例#2
0
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
                }))
示例#3
0
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)
示例#4
0
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}))
示例#5
0
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}))