def make_owner(request, entity_id): entity = get_object_or_404(Entity, id=entity_id) if not can_change_entity_team(request.user, entity): raise PermissionDenied old_owner = entity.owner new_owner_id = request.POST.get('new_owner_id') if new_owner_id: new_owner = User.objects.get(pk=int(new_owner_id)) if new_owner: entity.owner = new_owner entity.save() msg = _('New owner successfully set') old_pd = PermissionDelegation.objects.get(entity=entity, delegate=new_owner) if old_pd: old_pd.delete() if old_owner: new_pd = PermissionDelegation.objects.filter(entity=entity, delegate=old_owner) if not new_pd: new_pd = PermissionDelegation(entity=entity, delegate=old_owner) new_pd.save() else: msg = _('User not found') else: msg = _('You must provide the user id of the new owner') messages.success(request, msg) return HttpResponseRedirect(reverse('entity_view', args=(entity_id,)))
def sharing(request, entity_id): entity = get_object_or_404(Entity, id=entity_id) if not can_change_entity_team(request.user, entity): raise PermissionDenied return render_to_response('entity/sharing.html', { 'entity': entity, }, context_instance=RequestContext(request))
def list_delegates(request, entity_id): entity = get_object_or_404(Entity, id=entity_id) if not can_change_entity_team(request.user, entity): raise PermissionDenied return render_to_response('entity/delegate_list.html', { 'delegates': entity.delegates.all(), 'entity_id': entity.pk, }, context_instance=RequestContext(request))
def remove_delegate(request, entity_id, user_id): entity = get_object_or_404(Entity, id=entity_id) if not can_change_entity_team(request.user, entity): raise PermissionDenied delegate = User.objects.get(pk=user_id) if entity and delegate: delegations = PermissionDelegation.objects.filter(entity=entity, delegate=delegate) for delegation in delegations: delegation.delete() return list_delegates(request, entity_id)
def add_delegate(request, entity_id, username): entity = get_object_or_404(Entity, id=entity_id) if not can_change_entity_team(request.user, entity): raise PermissionDenied new_delegate = User.objects.get(username=username) if entity and new_delegate: pd = PermissionDelegation.objects.filter(entity=entity, delegate=new_delegate) if not pd and new_delegate != entity.owner: pd = PermissionDelegation(entity=entity, delegate=new_delegate) pd.save() elif pd: return HttpResponse('delegate') else: return HttpResponse('owner') return list_delegates(request, entity_id)