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