def project_delete_permission_request(request, project_slug, permission_pk):
    """
    View for deleting a request of permission of a user.

    This view is an abstraction of a txpermissions.views method.
    """
    project, permission = _get_project_and_permission(project_slug,
                                                      permission_pk)

    # It's necessary to distinguish between maintainer and normal users that
    # did the request
    if request.user.id == permission.user.id:
        notice_type = 'project_submit_access_request_withdrawn'
        sendto = project.maintainers.all()
    else:
        notice_type = 'project_submit_access_request_denied'
        sendto = [permission.user]

    notice = {
        'type': notice_type,
        'object': project,
        'sendto': sendto,
        'extra_context': {
            'project': project,
            'user_request': permission.user,
            'user_action': request.user,
        },
    }

    check = ProjectPermission(request.user)
    if check.maintain(project) or \
        request.user.has_perm('authority.delete_permission') or \
        request.user.pk == permission.creator.pk:
        return delete_permission_or_request(
            request,
            permission,
            False,
            extra_context={'notice': notice},
        )

    check = ProjectPermission(request.user)
    if check.maintain(project) or \
            request.user.has_perm('authority.delete_permission') or \
            request.user.pk == permission.creator.pk:
        return delete_permission_or_request(request, permission, False)

    return permission_denied(request)
Exemple #2
0
def project_delete_permission_request(request, project_slug, permission_pk):
    """
    View for deleting a request of permission of a user.

    This view is an abstraction of a txpermissions.views method.
    """
    project, permission=_get_project_and_permission(project_slug, permission_pk)

    # It's necessary to distinguish between maintainer and normal users that
    # did the request
    if request.user.id==permission.user.id:
        notice_type = 'project_submit_access_request_withdrawn'
        sendto = project.maintainers.all()
    else:
        notice_type = 'project_submit_access_request_denied'
        sendto = [permission.user]

    notice = {
            'type': notice_type,
            'object': project,
            'sendto': sendto,
            'extra_context': {'project': project,
                              'user_request': permission.user,
                              'user_action': request.user,
            },
        }

    check = ProjectPermission(request.user)
    if check.maintain(project) or \
        request.user.has_perm('authority.delete_permission') or \
        request.user.pk == permission.creator.pk:
        return delete_permission_or_request(request, permission, False,
                                            extra_context={ 'notice': notice },)


    check = ProjectPermission(request.user)
    if check.maintain(project) or \
            request.user.has_perm('authority.delete_permission') or \
            request.user.pk == permission.creator.pk:
        return delete_permission_or_request(request, permission, False)

    return permission_denied(request)
Exemple #3
0
def project_delete_permission(request, project_slug, permission_pk):
    """
    View for deleting a permission of a user.

    This view is an abstraction of a txpermissions.views method to be able to
    apply granular permission on it using a decorator.
    """
    project, permission=_get_project_and_permission(project_slug, permission_pk)
    notice = {
            'type': 'project_submit_access_revoked',
            'object': project,
            'sendto': [permission.user],
            'extra_context': {'project': project,
                              'user_request': permission.user,
                              'user_action': request.user,
            },
        }
    return delete_permission_or_request(request, permission, True,
                                        extra_context={ 'notice': notice })
def project_delete_permission(request, project_slug, permission_pk):
    """
    View for deleting a permission of a user.

    This view is an abstraction of a txpermissions.views method to be able to
    apply granular permission on it using a decorator.
    """
    project, permission = _get_project_and_permission(project_slug,
                                                      permission_pk)
    notice = {
        'type': 'project_submit_access_revoked',
        'object': project,
        'sendto': [permission.user],
        'extra_context': {
            'project': project,
            'user_request': permission.user,
            'user_action': request.user,
        },
    }
    return delete_permission_or_request(request,
                                        permission,
                                        True,
                                        extra_context={'notice': notice})