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